Function at 0x100363d0
Capabilities:
Authenticate hmac
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10051ca0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
sub esp, 0x9cc
push ebx
push esi
push edi
mov dword [ebp - 0x10], esp
push 0x10053488
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [0x10067c3c], eax
mov byte [ebp - 0xc9], 0xc0
xor eax, eax
mov dword [ebp - 0x64], 0xfc
mov dword [ebp - 0x60], eax
mov ecx, 0xa6
mov word [ebp - 0x30], cx
mov edx, 0x4e6d9
mov dword [ebp - 0x6c], 0xbcacc9d0
mov dword [ebp - 0x68], edx
mov eax, dword [0x10067120]
mov ecx, dword [0x10067124]
mov dword [ebp - 0x924], ecx
mov dword [ebp - 0x54], eax
xor edx, edx
mov dword [ebp - 0x50], 0xc121a569
mov dword [ebp - 0x4c], edx
mov al, byte [0x10067138]
mov byte [ebp - 0x11], al
movsx eax, word [0x1006712c]
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov byte [ebp - 0x15], 0x2a
mov ecx, 0xffffd877
mov word [ebp - 0x34], cx
mov edx, dword [0x100671a8]
mov eax, dword [0x100671ac]
mov dword [ebp - 0x928], eax
mov word [ebp - 0x2c], dx
mov dword [ebp - 0x48], 0xe2c0
movsx eax, byte [0x10067026]
cdq
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
mov cx, word [0x10067194]
mov word [ebp - 0x1c], cx
mov edx, 0x9f09
mov word [ebp - 0x24], dx
mov eax, 0xda7cc
mov dword [ebp - 0x5c], 0x1bb4528
mov dword [ebp - 0x58], eax
mov ecx, 0xbe31
mov word [ebp - 0x28], cx
mov edx, dword [str.Y__W1_]
mov dword [ebp - 0x44], edx
mov byte [ebp - 0x13], 0x6e
mov ax, word [0x10067180]
mov word [ebp - 0x20], ax
mov byte [ebp - 0x12], 0x57
mov cl, byte [0x1006704f]
mov byte [ebp - 0x14], cl
mov edx, 0xffffda59
mov word [ebp - 0x38], dx
mov dword [ebp - 0x92c], 0x7077
mov dword [ebp - 0x930], 0x69cebe8c
mov eax, 0x64c0
mov word [ebp - 0x540], ax
movsx cx, byte [0x10067026]
mov word [ebp - 0x544], cx
mov dword [ebp - 0x934], 0xb8c3f33a
mov edx, 0x77
mov word [ebp - 0x548], dx
xor eax, eax
mov dword [ebp - 0x998], 0x1d
mov dword [ebp - 0x994], eax
mov cx, word [0x10067198]
mov word [ebp - 0x54c], cx
push 0
push 0
push 0
push 0x4f
mov eax, dword [0x10067150]
cdq
push edx
push eax
mov edx, dword [ebp - 0x44]
xor eax, eax
push eax
push edx
call fcn.10034110
mov dword [0x1006716c], eax
cmp dword [0x1006716c], 0
je 0x1003672c
mov dword [ebp - 4], 0
mov ecx, dword [0x10067170]
add ecx, 0x29bf7c9f
mov edx, dword [0x10067174]
adc edx, 0
mov dword [0x100671a0], ecx
mov dword [0x100671a4], edx
movsx eax, word [0x1006712c]
cdq
sub eax, dword [ebp - 0x64]
mov word [0x1006712c], ax
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
add eax, 0x13e9dc31
adc ecx, 0x4ea01
mov edx, dword [ebp - 0x64]
sub edx, eax
mov eax, dword [ebp - 0x60]
sbb eax, ecx
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], eax
jmp 0x1003671a
mov dword [ebp - 4], 0xffffffff
jmp 0x1003672a
jmp 0x100367a2
mov ecx, dword [ebp - 0x50]
xor ecx, 0x308c
mov word [0x10067154], cx
mov ecx, dword [ebp - 0x6c]
not ecx
sub ecx, dword [0x1006716c]
movsx eax, byte [ebp - 0x12]
add eax, dword [0x1006719c]
cdq
mov esi, eax
sub esi, ecx
movzx eax, byte [0x1006706f]
add eax, 0xa3ad
not eax
cdq
sub eax, esi
mov byte [ebp - 0x11], al
movzx edx, word [0x10067190]
test edx, edx
je 0x10036782
mov eax, dword [0x1006719c]
mov dword [ebp - 0x38c], eax
jmp 0x1003678e
mov ecx, dword [str.Y__W1_]
mov dword [ebp - 0x38c], ecx
mov dl, byte [ebp - 0x38c]
mov byte [0x10067027], dl
mov al, byte [0x10067180]
mov byte [ebp - 0x14], al
mov ecx, dword [0x10067c3c]
mov dword [ebp - 0x90], ecx
mov edx, 4
imul eax, edx, 0x4b
mov ecx, dword [eax + 0x10096b00]
mov dword [ebp - 0x44], ecx
mov edx, dword [0x10067160]
add edx, 0x42faa3e9
mov eax, dword [0x10067164]
adc eax, 0x2ea29
mov dword [0x10067158], edx
mov dword [0x1006715c], eax
cmp dword [0x1006719c], 0
jne 0x100367fd
xor ecx, ecx
mov dword [ebp - 0x57c], 1
mov dword [ebp - 0x578], ecx
jmp 0x10036808
xorps xmm0, xmm0
movlpd qword [ebp - 0x57c], xmm0
mov edx, dword [0x10067138]
not edx
or edx, dword [ebp - 0x57c]
mov byte [0x10067063], dl
mov eax, dword [ebp - 0x44]
add eax, 0x4859f90d
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0x90]
add ecx, 0x346
mov dword [ebp - 0x550], ecx
mov dword [ebp - 0xfc], 0
jmp 0x10036854
mov edx, dword [ebp - 0xfc]
add edx, 1
mov dword [ebp - 0xfc], edx
cmp dword [ebp - 0xfc], 0x58
jge 0x10036933
push 0
push 0x5c
push 0
push 0
push 0
push 0xc3
mov eax, dword [str.Y__W1_]
xor ecx, ecx
push ecx
push eax
call fcn.10034110
mov dword [0x10067128], eax
cmp dword [0x10067128], 0
je 0x100368f2
movzx edx, word [ebp - 0x1c]
sub edx, 0x2ef4
movsx eax, word [ebp - 0x2c]
imul eax, edx
mov word [ebp - 0x2c], ax
mov cl, byte [ebp - 0x14]
sub cl, 1
mov byte [ebp - 0x14], cl
movsx eax, byte [ebp - 0x11]
cdq
mov ecx, eax
mov esi, edx
sub ecx, dword [0x10067180]
sbb esi, dword [0x10067184]
movzx edx, word [ebp - 0x28]
not edx
mov eax, dword [ebp - 0x48]
sub eax, edx
cdq
push esi
push ecx
push edx
push eax
call fcn.100409b0
mov word [ebp - 0x30], ax
mov eax, dword [ebp - 0x50]
sub eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x4c]
sbb ecx, dword [ebp - 0x68]
add eax, dword [ebp - 0x50]
adc ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
jmp 0x10036922
mov dx, word [ebp - 0x1c]
sub dx, 1
mov word [ebp - 0x1c], dx
mov eax, dword [0x10067140]
cdq
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
movsx eax, byte [ebp - 0x11]
sub eax, 0x48
cdq
mov ecx, dword [ebp - 0x6c]
sub ecx, eax
mov eax, dword [ebp - 0x68]
sbb eax, edx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], eax
mov cx, word [ebp - 0x30]
add cx, 1
mov word [ebp - 0x30], cx
jmp 0x10036845
mov edx, dword [ebp - 0x90]
add edx, 0x2fa
mov dword [ebp - 0x938], edx
push 0
movzx eax, word [0x10067194]
push eax
call fcn.10031d40
movsx ecx, ax
mov dword [ebp - 0x54], ecx
mov edx, dword [0x10067118]
or edx, dword [0x10067140]
jne 0x10036c96
push 0xffffffffffffffc1
push 0
push 0xffffffffffffffe6
push 0x56
call fcn.10032de0
mov byte [0x10067027], al
movsx eax, byte [ebp - 0x13]
test eax, eax
jne 0x1003699a
xor ecx, ecx
mov dword [ebp - 0x3b0], 1
mov dword [ebp - 0x3ac], ecx
jmp 0x100369a5
xorps xmm0, xmm0
movlpd qword [ebp - 0x3b0], xmm0
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
xor ecx, dword [ebp - 0x3b0]
xor esi, dword [ebp - 0x3ac]
mov eax, dword [0x10067140]
not eax
cdq
mov dword [ebp - 0x584], eax
mov dword [ebp - 0x580], edx
mov dword [ebp - 0x58c], ecx
mov dword [ebp - 0x588], esi
mov edx, dword [ebp - 0x584]
cmp edx, dword [ebp - 0x58c]
jne 0x100369f3
mov eax, dword [ebp - 0x580]
cmp eax, dword [ebp - 0x588]
je 0x100369ff
mov dword [ebp - 0x390], 1
jmp 0x10036a09
mov dword [ebp - 0x390], 0
movsx eax, word [ebp - 0x34]
cdq
mov dword [ebp - 0x594], eax
mov dword [ebp - 0x590], edx
mov ecx, dword [0x10067138]
cmp ecx, dword [ebp - 0x594]
jne 0x10036a36
mov edx, dword [0x1006713c]
cmp edx, dword [ebp - 0x590]
je 0x10036a4a
xor eax, eax
mov dword [ebp - 0x3b8], 1
mov dword [ebp - 0x3b4], eax
jmp 0x10036a55
xorps xmm0, xmm0
movlpd qword [ebp - 0x3b8], xmm0
mov ecx, dword [ebp - 0x6c]
add ecx, 0xcb2d
mov edx, dword [ebp - 0x68]
adc edx, 0
not ecx
not edx
mov dword [ebp - 0x59c], ecx
mov dword [ebp - 0x598], edx
mov eax, dword [ebp - 0x3b4]
cmp eax, dword [ebp - 0x598]
jl 0x10036a9e
jg 0x10036a92
mov ecx, dword [ebp - 0x3b8]
cmp ecx, dword [ebp - 0x59c]
jb 0x10036a9e
mov dword [ebp - 0x394], 1
jmp 0x10036aa8
mov dword [ebp - 0x394], 0
mov edx, dword [ebp - 0x390]
cmp edx, dword [ebp - 0x394]
jg 0x10036bd3
movsx eax, byte [ebp - 0x11]
movsx ecx, byte [0x10067026]
add ecx, eax
jne 0x10036ad5
mov dword [ebp - 0x398], 1
jmp 0x10036adf
mov dword [ebp - 0x398], 0
movsx edx, byte [ebp - 0x14]
movsx eax, word [ebp - 0x34]
xor eax, edx
xor eax, dword [ebp - 0x398]
jne 0x10036af7
mov byte [ebp - 0x76], 1
jmp 0x10036afb
mov byte [ebp - 0x76], 0
mov cl, byte [ebp - 0x76]
mov byte [ebp - 0x12], cl
movsx eax, byte [ebp - 0x12]
cdq
mov ecx, dword [ebp - 0x44]
xor esi, esi
sub ecx, dword [0x10067180]
sbb esi, dword [0x10067184]
sub ecx, eax
sbb esi, edx
mov dword [ebp - 0x5a4], ecx
mov dword [ebp - 0x5a0], esi
mov edx, dword [ebp - 0x5a4]
or edx, dword [ebp - 0x5a0]
jne 0x10036b49
xor eax, eax
mov dword [ebp - 0x3c0], 1
mov dword [ebp - 0x3bc], eax
jmp 0x10036b54
xorps xmm0, xmm0
movlpd qword [ebp - 0x3c0], xmm0
movzx ecx, word [0x10067144]
imul eax, ecx, 0x6908
cdq
mov ecx, dword [0x10067120]
mov esi, dword [0x10067124]
add ecx, eax
adc esi, edx
sub ecx, dword [ebp - 0x3c0]
sbb esi, dword [ebp - 0x3bc]
mov dword [ebp - 0x5ac], ecx
mov dword [ebp - 0x5a8], esi
mov edx, dword [ebp - 0x5ac]
or edx, dword [ebp - 0x5a8]
jne 0x10036b9e
mov byte [ebp - 0x75], 1
jmp 0x10036ba2
mov byte [ebp - 0x75], 0
mov al, byte [ebp - 0x75]
mov byte [ebp - 0x13], al
mov dword [str.Y__W1_], 0x5f
mov ecx, 1
imul edx, ecx, 0xb1
movsx eax, byte [edx + 0x100a2078]
movzx ecx, word [ebp - 0x28]
sub ecx, eax
mov word [ebp - 0x28], cx
jmp 0x10036c94
movzx edx, word [ebp - 0x1c]
test edx, edx
jne 0x10036be7
mov dword [ebp - 0x120], 1
jmp 0x10036bf1
mov dword [ebp - 0x120], 0
movzx eax, word [ebp - 0x20]
not eax
imul eax, dword [ebp - 0x120]
test eax, eax
jne 0x10036c0e
mov dword [ebp - 0x124], 1
jmp 0x10036c18
mov dword [ebp - 0x124], 0
movzx ecx, byte [0x10067063]
imul ecx, dword [ebp - 0x124]
test ecx, ecx
je 0x10036c94
movzx edx, word [ebp - 0x28]
imul eax, edx, 0x195d
cdq
mov dword [0x10067120], eax
mov dword [0x10067124], edx
movzx eax, word [ebp - 0x1c]
cdq
mov ecx, 8
imul ecx, ecx, 0x18
mov esi, dword [ecx + 0x100a2264]
push esi
mov ecx, dword [ecx + 0x100a2260]
push ecx
push edx
push eax
call fcn.100409b0
mov word [ebp - 0x1c], ax
mov edx, dword [0x1006711c]
add edx, 0x188fa410
xor eax, eax
mov dword [0x10067160], edx
mov dword [0x10067164], eax
mov ecx, 0xaeed1
mov dword [0x10067170], 0xcc0663ee
mov dword [0x10067174], ecx
jmp 0x10036d10
mov eax, dword [0x10067118]
cdq
sub eax, 0x58363e7e
mov dword [0x10067194], eax
movsx eax, byte [ebp - 0x14]
sub eax, 0x1893
cdq
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
cmp dword [0x10067150], 0
jne 0x10036ccb
mov dword [ebp - 0x128], 1
jmp 0x10036cd5
mov dword [ebp - 0x128], 0
mov ecx, dword [0x100671a0]
sub ecx, 0x27975fdf
not ecx
movsx eax, byte [ebp - 0x11]
sub eax, dword [ebp - 0x128]
cdq
add eax, ecx
movsx edx, byte [ebp - 0x11]
sub edx, dword [0x1006716c]
mov ecx, dword [0x10067150]
add ecx, dword [0x10067128]
xor ecx, edx
sub ecx, eax
mov byte [str.OrOutput_of_signing], cl
mov edx, dword [ebp - 0x90]
add edx, 0x26e
mov dword [ebp - 0xa0], edx
mov dword [ebp - 0x94], 0
jmp 0x10036d3d
mov eax, dword [ebp - 0x94]
add eax, 2
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0x3a0
jge 0x10036e56
mov dword [ebp - 4], 2
mov ecx, dword [str.CRYPT32.dll]
mov dword [ebp - 0x894], ecx
mov edx, dword [0x100534b4]
mov dword [ebp - 0x890], edx
mov eax, dword [0x100534b8]
mov dword [ebp - 0x88c], eax
lea ecx, [ebp - 0x894]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [0x10067118], eax
jmp 0x10036e32
mov dword [ebp - 4], 0xffffffff
jmp 0x10036e42
mov edx, dword [0x10067150]
add edx, 1
mov dword [0x10067150], edx
jmp 0x10036d2e
mov eax, dword [0x10067c3c]
mov dword [ebp - 0x9c], eax
mov dword [ebp - 4], 4
movzx eax, word [0x10067144]
xor eax, 0xc6
cdq
mov ecx, dword [0x10067178]
mov esi, dword [0x1006717c]
add ecx, eax
adc esi, edx
mov dword [0x10067178], ecx
mov dword [0x1006717c], esi
mov edx, 8
shl edx, 4
mov al, byte [edx + 0x100a2260]
mov byte [ebp - 0x11], al
mov eax, dword [0x10067140]
cdq
mov ecx, dword [0x10067188]
sub ecx, eax
mov eax, dword [0x1006718c]
sbb eax, edx
mov dword [0x10067188], ecx
mov dword [0x1006718c], eax
xor ecx, ecx
mov dword [0x100671a0], 0xb56c2f17
mov dword [0x100671a4], ecx
jmp 0x10036f41
mov dword [ebp - 4], 0xffffffff
jmp 0x10036f51
mov ecx, dword [ebp - 0x9c]
add ecx, 0xa468
mov dword [ebp - 0x93c], ecx
mov edx, 0x74a7
mov word [ebp - 0x1c], dx
movsx eax, byte [ebp - 0x12]
imul ecx, eax, 0x292138f1
mov dword [0x10067150], ecx
mov edx, dword [ebp - 0x44]
add edx, dword [0x10067168]
or edx, dword [ebp - 0x44]
mov dword [ebp - 0x44], edx
movzx eax, word [ebp - 0x28]
sub eax, dword [0x10067168]
mov word [ebp - 0x28], ax
mov ecx, dword [ebp - 0x9c]
add ecx, 0x404c
mov dword [ebp - 0x940], ecx
movzx edx, byte [0x1006704f]
not edx
add edx, dword [0x1006719c]
jne 0x10036ff7
mov eax, dword [0x10067118]
cdq
mov dword [ebp - 0x5bc], eax
mov dword [ebp - 0x5b8], edx
mov eax, dword [0x10067174]
cmp eax, dword [ebp - 0x5b8]
jl 0x10036ff7
jg 0x10036feb
mov ecx, dword [0x10067170]
cmp ecx, dword [ebp - 0x5bc]
jb 0x10036ff7
mov dword [ebp - 0x134], 0
jmp 0x10037001
mov dword [ebp - 0x134], 1
movsx edx, byte [ebp - 0x13]
cmp dword [0x10067118], edx
jg 0x10037019
mov dword [ebp - 0x12c], 1
jmp 0x10037023
mov dword [ebp - 0x12c], 0
movsx eax, byte [ebp - 0x13]
movsx ecx, byte [0x10067027]
cmp ecx, eax
jl 0x1003703e
mov dword [ebp - 0x130], 1
jmp 0x10037048
mov dword [ebp - 0x130], 0
mov edx, dword [ebp - 0x12c]
not edx
cmp edx, dword [ebp - 0x130]
jg 0x10037064
mov dword [ebp - 0x138], 1
jmp 0x1003706e
mov dword [ebp - 0x138], 0
mov eax, dword [ebp - 0x134]
sub eax, dword [ebp - 0x138]
je 0x1003713e
mov dword [ebp - 0x98], 0
jmp 0x1003709b
mov ecx, dword [ebp - 0x98]
add ecx, 2
mov dword [ebp - 0x98], ecx
cmp dword [ebp - 0x98], 0x1f1
jge 0x1003713c
movsx edx, word [ebp - 0x30]
add edx, dword [0x10067140]
mov dword [0x10067140], edx
movsx eax, word [ebp - 0x2c]
imul eax, eax, 0xaba5
cdq
mov dword [0x100671a8], eax
mov dword [0x100671ac], edx
cmp dword [ebp - 0x44], 0
jne 0x100370e3
mov dword [ebp - 0x13c], 1
jmp 0x100370ed
mov dword [ebp - 0x13c], 0
movsx ecx, word [ebp - 0x2c]
mov edx, dword [0x10067194]
sub edx, ecx
add edx, dword [ebp - 0x13c]
not edx
mov eax, dword [0x1006716c]
not eax
movzx ecx, byte [ebp - 0x15]
add ecx, eax
movzx eax, word [0x10067190]
not eax
movsx esi, word [ebp - 0x30]
not esi
imul esi, eax
sub esi, ecx
xor esi, edx
mov word [ebp - 0x2c], si
mov cl, byte [str.OrOutput_of_signing]
add cl, 1
mov byte [str.OrOutput_of_signing], cl
jmp 0x1003708c
jmp 0x100371a2
movsx edx, word [ebp - 0x34]
test edx, edx
je 0x100371a2
mov eax, dword [0x10067148]
mov ecx, dword [0x1006714c]
mov dword [ebp - 0x944], ecx
sub eax, 0xfe73
mov word [0x1006712c], ax
movsx edx, byte [ebp - 0x12]
add edx, dword [0x1006711c]
mov byte [ebp - 0x12], dl
movzx eax, word [ebp - 0x28]
cdq
push edx
push eax
mov eax, dword [0x10067174]
push eax
mov ecx, dword [0x10067170]
push ecx
call fcn.100409b0
mov ecx, dword [0x10067170]
sub ecx, eax
mov eax, dword [0x10067174]
sbb eax, edx
mov dword [0x10067170], ecx
mov dword [0x10067174], eax
mov ecx, dword [ebp - 0x9c]
add ecx, 0xc374
mov dword [ebp - 0x144], ecx
mov edx, dword [str.New_generation_cre]
mov dword [ebp - 0x888], edx
mov eax, dword [0x100534c0]
mov dword [ebp - 0x884], eax
mov ecx, dword [0x100534c4]
mov dword [ebp - 0x880], ecx
mov edx, dword [0x100534c8]
mov dword [ebp - 0x87c], edx
mov ax, word [0x100534cc]
mov word [ebp - 0x878], ax
mov cl, byte [0x100534ce]
mov byte [ebp - 0x876], cl
lea edx, [ebp - 0x888]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov byte [ebp - 0x11], al
movzx eax, word [0x10067154]
test eax, eax
jne 0x10037223
mov dword [ebp - 0x140], 1
jmp 0x1003722d
mov dword [ebp - 0x140], 0
movsx eax, word [0x1006712c]
sub eax, dword [ebp - 0x140]
cdq
mov dword [0x10067158], eax
mov dword [0x1006715c], edx
movsx eax, byte [ebp - 0x14]
cdq
mov ecx, 8
imul edx, ecx, 0x33fb
and eax, dword [edx + 0x10116998]
mov byte [ebp - 0x14], al
mov ax, word [0x10067c3c]
mov word [ebp - 0x30], ax
mov ecx, dword [ebp - 0xa0]
xor ecx, dword [ebp - 0xa0]
mov edx, dword [ebp - 0xa0]
xor edx, dword [ebp - 0x550]
imul edx, ecx
mov eax, dword [ebp - 0x144]
xor eax, 0x6b
mov ecx, dword [ebp - 0x144]
xor ecx, 0xc226
xor ecx, eax
mov eax, 0xc311
sub eax, ecx
add eax, edx
mov dword [ebp - 0x558], eax
movsx ecx, byte [ebp - 0x12]
cmp dword [0x10067168], ecx
jb 0x100372c2
mov dword [ebp - 0x148], 1
jmp 0x100372cc
mov dword [ebp - 0x148], 0
cmp dword [0x10067168], 0x32
jb 0x100372e1
mov dword [ebp - 0x14c], 1
jmp 0x100372eb
mov dword [ebp - 0x14c], 0
mov edx, dword [ebp - 0x148]
cmp edx, dword [ebp - 0x14c]
je 0x10037484
push 0
push 0
call fcn.10031d40
cwde
cdq
mov dword [0x10067170], eax
mov dword [0x10067174], edx
cmp dword [0x10067174], 0
jg 0x1003742a
jl 0x1003732f
cmp dword [0x10067170], 0
ja 0x1003742a
xor eax, eax
mov dword [0x10067148], 8
mov dword [0x1006714c], eax
movsx ecx, word [ebp - 0x30]
test ecx, ecx
jne 0x1003735c
xor edx, edx
mov dword [ebp - 0x3d0], 1
mov dword [ebp - 0x3cc], edx
jmp 0x10037367
xorps xmm0, xmm0
movlpd qword [ebp - 0x3d0], xmm0
movzx eax, word [0x10067190]
cdq
mov ecx, dword [0x10067164]
push ecx
mov ecx, dword [0x10067160]
push ecx
push edx
push eax
call fcn.100409b0
mov ecx, eax
mov esi, edx
movsx eax, byte [ebp - 0x11]
cdq
push esi
push ecx
push edx
push eax
call fcn.100409b0
mov ecx, eax
mov esi, edx
mov edi, dword [ebp - 0x5c]
mov ebx, dword [ebp - 0x58]
xor edi, dword [ebp - 0x3d0]
xor ebx, dword [ebp - 0x3cc]
movzx eax, byte [0x10067063]
cdq
mov dword [ebp - 0x554], esi
mov esi, 0x15212669
sub esi, eax
mov eax, 0x5c920
sbb eax, edx
not esi
not eax
add esi, edi
adc eax, ebx
sub esi, ecx
mov ecx, dword [ebp - 0x554]
sbb eax, ecx
mov dword [ebp - 0x5c4], esi
mov dword [ebp - 0x5c0], eax
mov edx, dword [ebp - 0x5c4]
or edx, dword [ebp - 0x5c0]
jne 0x100373ff
mov eax, 1
mov word [ebp - 0x7e], ax
jmp 0x10037405
xor ecx, ecx
mov word [ebp - 0x7e], cx
mov dx, word [ebp - 0x7e]
mov word [0x10067190], dx
mov ecx, dword [0x10067134]
add ecx, dword [0x10067140]
mov eax, dword [0x10067134]
shl eax, cl
mov dword [0x10067134], eax
jmp 0x10037482
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x948], edx
add ecx, 0x3d1374e7
mov byte [ebp - 0x11], cl
mov eax, dword [0x10067168]
xor ecx, ecx
add eax, 0x8dc23fb7
adc ecx, 0xd86cb
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], ecx
mov edx, dword [0x1006716c]
and edx, 0x1b0926a4
mov word [ebp - 0x24], dx
mov eax, dword [0x10067148]
mov ecx, dword [0x1006714c]
mov dword [ebp - 0x94c], ecx
xor eax, 0xdb52cc53
mov dword [0x10067140], eax
jmp 0x100374f9
mov edx, dword [0x10067158]
not edx
mov eax, dword [0x1006715c]
not eax
mov ecx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x70]
mov dword [ebp - 0x5cc], ecx
mov dword [ebp - 0x5c8], esi
mov dword [ebp - 0x5d4], edx
mov dword [ebp - 0x5d0], eax
mov edx, dword [ebp - 0x5c8]
cmp edx, dword [ebp - 0x5d0]
jb 0x100374f9
ja 0x100374cf
mov eax, dword [ebp - 0x5cc]
cmp eax, dword [ebp - 0x5d4]
jbe 0x100374f9
mov cx, word [ebp - 0x2c]
sub cx, 1
mov word [ebp - 0x2c], cx
movzx edx, byte [ebp - 0x15]
movzx eax, byte [0x10067063]
add eax, edx
mov byte [0x10067063], al
movsx ecx, byte [ebp - 0x13]
mov edx, dword [ebp - 0x44]
sub edx, ecx
mov dword [ebp - 0x44], edx
mov eax, dword [0x10067c3c]
mov dword [ebp - 0xa4], eax
push 0
push 0
movsx eax, word [ebp - 0x30]
cdq
push edx
push eax
push 0
push 0x57
push 0
push 0x39
call fcn.10034110
mov dword [0x10067188], eax
mov dword [0x1006718c], edx
mov ecx, 0x92ac1a32
or ecx, 0xcb345
je 0x10037820
push 0
push 0x85
call fcn.10031d40
mov word [0x10067154], ax
movzx edx, word [0x10067154]
test edx, edx
jg 0x10037561
mov dword [ebp - 0x150], 1
jmp 0x1003756b
mov dword [ebp - 0x150], 0
movzx eax, word [0x10067154]
cmp eax, 0x20
jg 0x10037583
mov dword [ebp - 0x154], 1
jmp 0x1003758d
mov dword [ebp - 0x154], 0
mov ecx, dword [ebp - 0x150]
cmp ecx, dword [ebp - 0x154]
jle 0x10037721
mov edx, dword [0x10067160]
or edx, dword [0x10067164]
jne 0x100375c1
xor eax, eax
mov dword [ebp - 0x5dc], 1
mov dword [ebp - 0x5d8], eax
jmp 0x100375cc
xorps xmm0, xmm0
movlpd qword [ebp - 0x5dc], xmm0
movzx ecx, word [0x10067154]
movsx edx, word [ebp - 0x30]
imul edx, ecx
movsx eax, byte [ebp - 0x14]
add eax, dword [0x10067134]
imul eax, edx
mov ecx, dword [ebp - 0x64]
sub ecx, 0xbc
not ecx
mov edx, dword [ebp - 0x5dc]
sub edx, dword [ebp - 0x64]
sub edx, ecx
sub edx, eax
not edx
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x5e4], eax
mov dword [ebp - 0x5e0], ecx
mov edx, dword [ebp - 0x5e4]
or edx, dword [ebp - 0x5e0]
jne 0x10037638
xor eax, eax
mov dword [ebp - 0x3d8], 1
mov dword [ebp - 0x3d4], eax
jmp 0x10037643
xorps xmm0, xmm0
movlpd qword [ebp - 0x3d8], xmm0
mov ecx, dword [0x10067124]
mov edx, dword [ebp - 0x50]
sub edx, dword [0x10067120]
mov eax, dword [ebp - 0x4c]
sbb eax, ecx
mov dword [ebp - 0x5ec], edx
mov dword [ebp - 0x5e8], eax
mov ecx, dword [ebp - 0x5ec]
or ecx, dword [ebp - 0x5e8]
jne 0x1003767d
mov dword [ebp - 0x160], 1
jmp 0x10037687
mov dword [ebp - 0x160], 0
movsx edx, byte [0x10067026]
test edx, edx
jne 0x1003769e
mov dword [ebp - 0x158], 1
jmp 0x100376a8
mov dword [ebp - 0x158], 0
mov eax, dword [0x10067160]
or eax, dword [0x10067164]
jne 0x100376c1
mov dword [ebp - 0x15c], 1
jmp 0x100376cb
mov dword [ebp - 0x15c], 0
mov ecx, dword [ebp - 0x158]
xor ecx, dword [ebp - 0x15c]
mov eax, dword [ebp - 0x160]
sub eax, ecx
cdq
mov ecx, eax
mov esi, edx
mov edi, dword [0x10067120]
mov ebx, dword [0x10067124]
movzx eax, byte [0x1006706f]
cdq
add eax, edi
adc edx, ebx
mov edi, dword [ebp - 0x6c]
or edi, dword [ebp - 0x3d8]
mov ebx, dword [ebp - 0x68]
or ebx, dword [ebp - 0x3d4]
sub edi, eax
sbb ebx, edx
sub edi, ecx
sbb ebx, esi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 0x68], ebx
jmp 0x10037820
movsx edx, word [ebp - 0x30]
movzx eax, word [ebp - 0x28]
cmp eax, edx
jl 0x10037739
mov dword [ebp - 0x164], 1
jmp 0x10037743
mov dword [ebp - 0x164], 0
mov ecx, dword [ebp - 0x54]
add ecx, dword [ebp - 0x164]
je 0x10037788
mov edx, dword [ebp - 0x54]
sub edx, 0xdaa2
mov byte [ebp - 0x12], dl
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x950], edx
add ecx, 0xd10383da
movsx eax, word [ebp - 0x30]
cdq
and eax, ecx
mov word [ebp - 0x30], ax
mov ax, word [ebp - 0x20]
add ax, 1
mov word [ebp - 0x20], ax
jmp 0x10037820
movsx ecx, byte [ebp - 0x11]
test ecx, ecx
jne 0x1003779c
mov dword [ebp - 0x168], 1
jmp 0x100377a6
mov dword [ebp - 0x168], 0
movzx edx, byte [0x1006706f]
cmp edx, dword [ebp - 0x168]
jg 0x100377c1
mov dword [ebp - 0x16c], 1
jmp 0x100377cb
mov dword [ebp - 0x16c], 0
movzx eax, word [ebp - 0x1c]
cmp eax, dword [ebp - 0x16c]
jg 0x10037820
mov ecx, dword [ebp - 0x50]
or ecx, dword [ebp - 0x4c]
je 0x100377ee
movzx edx, byte [0x1006706f]
mov dword [ebp - 0x170], edx
jmp 0x100377f7
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x170], eax
mov cx, word [ebp - 0x170]
mov word [ebp - 0x1c], cx
movzx edx, byte [str.OrOutput_of_signing]
sar edx, 3
mov byte [ebp - 0x11], dl
movzx eax, word [ebp - 0x24]
sub eax, dword [ebp - 0x44]
movzx ecx, word [ebp - 0x24]
or ecx, eax
mov word [ebp - 0x24], cx
mov edx, dword [ebp - 0xa4]
add edx, 0x21
mov dword [ebp - 0x1b4], edx
movzx eax, word [ebp - 0x20]
cdq
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], esi
movzx eax, byte [str.OrOutput_of_signing]
cdq
add eax, 0x90c3aabe
mov word [0x10067154], ax
movsx edx, byte [ebp - 0x13]
test edx, edx
jne 0x1003786b
mov dword [ebp - 0x174], 1
jmp 0x10037875
mov dword [ebp - 0x174], 0
mov eax, dword [ebp - 0x48]
not eax
mov ecx, dword [ebp - 0x174]
sub ecx, 0x73701d77
sub ecx, eax
xor edx, edx
sub edx, dword [str.Y__W1_]
movsx eax, word [ebp - 0x38]
movzx esi, word [ebp - 0x28]
add esi, eax
sub esi, edx
imul esi, ecx
xor ecx, ecx
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], ecx
mov edx, dword [ebp - 0xa4]
add edx, 0xd6
mov dword [ebp - 0x1b0], edx
push 0xdb
push 0x1d
push 0
movsx eax, word [0x1006712c]
push eax
call fcn.100322f0
mov byte [ebp - 0x14], al
movsx ecx, word [ebp - 0x30]
test ecx, ecx
je 0x1003790b
mov edx, dword [0x10067120]
mov eax, dword [0x10067124]
mov dword [ebp - 0x5f4], edx
mov dword [ebp - 0x5f0], eax
mov ecx, dword [ebp - 0x5f4]
or ecx, dword [ebp - 0x5f0]
je 0x1003790b
mov dword [ebp - 0x178], 1
jmp 0x10037915
mov dword [ebp - 0x178], 0
movsx edx, byte [ebp - 0x11]
cmp edx, dword [ebp - 0x178]
je 0x100379af
movsx eax, byte [0x10067026]
test eax, eax
je 0x10037980
cmp dword [0x10067134], 0
je 0x10037980
mov ecx, dword [0x10067148]
mov edx, dword [0x1006714c]
add ecx, 1
adc edx, 0
mov dword [0x10067148], ecx
mov dword [0x1006714c], edx
movsx eax, byte [ebp - 0x11]
imul eax, eax, 0xcb0c
cdq
mov dword [0x10067160], eax
mov dword [0x10067164], edx
movsx ecx, word [0x10067198]
add ecx, 0x3d9d
mov word [ebp - 0x38], cx
jmp 0x100379ad
movsx edx, word [ebp - 0x38]
sar edx, 8
mov dword [0x1006711c], edx
xor eax, eax
mov dword [ebp - 0x5c], 0x246c
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x48]
add eax, 0xa907
cdq
mov dword [0x10067148], eax
mov dword [0x1006714c], edx
jmp 0x10037a00
mov ecx, 0x9d8595b8
test ecx, ecx
je 0x10037a00
imul edx, dword [ebp - 0x44], 0x165e
mov word [ebp - 0x30], dx
mov eax, dword [0x1006716c]
xor ecx, ecx
push ecx
push eax
mov edx, dword [0x1006718c]
push edx
mov eax, dword [0x10067188]
push eax
call fcn.100409b0
mov dword [0x10067128], eax
movsx eax, word [0x1006712c]
cdq
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
push edx
push eax
push esi
push ecx
call fcn.100409b0
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
mov edx, dword [ebp - 0x558]
add edx, dword [ebp - 0xa4]
mov dword [ebp - 0x55c], edx
movsx eax, byte [ebp - 0x13]
cdq
mov dword [ebp - 0x5fc], eax
mov dword [ebp - 0x5f8], edx
mov eax, dword [ebp - 0x5f8]
cmp eax, dword [ebp - 0x68]
jg 0x10037a47
jl 0x10037a3b
mov ecx, dword [ebp - 0x5fc]
cmp ecx, dword [ebp - 0x6c]
ja 0x10037a47
mov dword [ebp - 0x17c], 1
jmp 0x10037a51
mov dword [ebp - 0x17c], 0
movsx edx, byte [ebp - 0x13]
cmp edx, 0x43
jg 0x10037a66
mov dword [ebp - 0x180], 1
jmp 0x10037a70
mov dword [ebp - 0x180], 0
mov eax, dword [ebp - 0x17c]
cmp eax, dword [ebp - 0x180]
jge 0x10037acb
push 0
push 0xffffffffffffff91
movzx ecx, byte [0x10067170]
push ecx
push 0xffffffffffffff8d
call fcn.10032de0
movsx edx, al
mov dword [0x10067150], edx
cmp dword [0x10067150], 0
jl 0x10037ac9
mov ecx, 9
mov esi, str.Getting_token_by_r
lea edi, [ebp - 0x9dc]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
lea eax, [ebp - 0x9dc]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov dword [0x10067194], eax
jmp 0x10037b26
movsx ecx, byte [0x10067027]
movzx edx, word [0x10067144]
sub edx, ecx
movzx eax, word [0x10067144]
or eax, edx
mov word [0x10067144], ax
mov ecx, dword [0x10067194]
shl ecx, 5
mov dword [str.Y__W1_], ecx
mov edx, dword [0x10067178]
mov eax, dword [0x1006717c]
push 0x9127e
push 0x223bf609
push eax
push edx
call fcn.100409b0
mov byte [ebp - 0x11], al
movsx ecx, word [ebp - 0x2c]
add ecx, 0x4b965523
mov word [ebp - 0x24], cx
mov edx, dword [0x10067c3c]
mov dword [ebp - 0xa8], edx
mov dword [ebp - 0x44], 1
movzx eax, word [ebp - 0x1c]
add eax, dword [ebp - 0x48]
movzx ecx, word [ebp - 0x1c]
sub ecx, eax
mov word [ebp - 0x1c], cx
mov edx, 2
imul eax, edx, 0xe
movzx ecx, word [eax + 0x10116970]
movsx edx, word [ebp - 0x38]
add edx, ecx
mov word [ebp - 0x38], dx
movzx eax, byte [0x1006706f]
cdq
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], esi
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x184], edx
cmp dword [ebp - 0x184], 0
je 0x10037b9f
cmp dword [ebp - 0x184], 1
je 0x10037c26
jmp 0x10037c57
mov eax, dword [ebp - 0x48]
cdq
push edx
push eax
mov eax, dword [0x1006715c]
push eax
mov ecx, dword [0x10067158]
push ecx
call fcn.100409b0
mov ecx, dword [0x10067158]
sub ecx, eax
mov eax, dword [0x1006715c]
sbb eax, edx
mov dword [0x10067158], ecx
mov dword [0x1006715c], eax
movsx ecx, word [ebp - 0x38]
imul ecx, dword [0x10067168]
movsx edx, word [ebp - 0x38]
sub edx, ecx
mov word [ebp - 0x38], dx
movsx eax, word [ebp - 0x34]
test eax, eax
je 0x10037c02
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x3e0], ecx
mov dword [ebp - 0x3dc], edx
jmp 0x10037c19
mov eax, dword [0x10067148]
mov ecx, dword [0x1006714c]
mov dword [ebp - 0x3e0], eax
mov dword [ebp - 0x3dc], ecx
mov dx, word [ebp - 0x3e0]
mov word [ebp - 0x34], dx
jmp 0x10037c57
mov eax, dword [0x10067c3c]
xor ecx, ecx
mov dword [0x10067138], eax
mov dword [0x1006713c], ecx
mov edx, dword [0x1006711c]
not edx
mov eax, dword [0x10067168]
sub eax, edx
mov word [ebp - 0x24], ax
mov cl, byte [0x10067c3c]
mov byte [str.OrOutput_of_signing], cl
mov edx, dword [ebp - 0xa8]
add edx, 0x2d7
mov dword [ebp - 0x510], edx
movzx eax, word [ebp - 0x34]
push eax
push 0
push 0xbc
push 0
call fcn.10033490
mov word [ebp - 0x20], ax
movzx ecx, word [ebp - 0x20]
test ecx, ecx
je 0x10037d49
movsx edx, word [ebp - 0x2c]
not edx
test edx, edx
jne 0x10037cad
movzx eax, byte [0x10067063]
test eax, eax
jne 0x10037cad
mov dword [ebp - 0x188], 0
jmp 0x10037cb7
mov dword [ebp - 0x188], 1
movsx eax, word [ebp - 0x34]
cdq
mov dword [ebp - 0x604], eax
mov dword [ebp - 0x600], edx
mov ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp - 0x600]
jl 0x10037cec
jg 0x10037ce0
mov edx, dword [ebp - 0x50]
cmp edx, dword [ebp - 0x604]
jb 0x10037cec
mov dword [ebp - 0x18c], 1
jmp 0x10037cf6
mov dword [ebp - 0x18c], 0
mov eax, dword [ebp - 0x188]
imul eax, dword [ebp - 0x18c]
test eax, eax
je 0x10037d44
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x954], edx
movsx eax, word [ebp - 0x2c]
cdq
add eax, ecx
mov word [ebp - 0x2c], ax
mov al, byte [ebp - 0x15]
mov ecx, 1
imul edx, ecx, 0x3e
mov byte [edx + 0x100a2440], al
movsx eax, word [ebp - 0x38]
imul eax, dword [0x10067194]
movsx ecx, word [ebp - 0x38]
sub ecx, eax
mov word [ebp - 0x38], cx
jmp 0x10037fa6
movzx edx, byte [str.OrOutput_of_signing]
test edx, edx
je 0x10037e8c
movzx eax, byte [0x10067063]
test eax, eax
jne 0x10037d77
xor ecx, ecx
mov dword [ebp - 0x3e8], 1
mov dword [ebp - 0x3e4], ecx
jmp 0x10037d82
xorps xmm0, xmm0
movlpd qword [ebp - 0x3e8], xmm0
cmp dword [ebp - 0x54], 0
jne 0x10037d94
mov dword [ebp - 0x190], 1
jmp 0x10037d9e
mov dword [ebp - 0x190], 0
push 0
push 0x54
mov edx, dword [ebp - 0x4c]
push edx
mov eax, dword [ebp - 0x50]
push eax
call fcn.100409b0
push edx
push eax
mov ecx, dword [ebp - 0x60]
push ecx
mov edx, dword [ebp - 0x64]
push edx
call fcn.100409b0
mov dword [ebp - 0x60c], eax
mov dword [ebp - 0x608], edx
mov eax, dword [ebp - 0x60c]
or eax, dword [ebp - 0x608]
jne 0x10037dec
xor ecx, ecx
mov dword [ebp - 0x614], 1
mov dword [ebp - 0x610], ecx
jmp 0x10037df7
xorps xmm0, xmm0
movlpd qword [ebp - 0x614], xmm0
movzx edx, word [ebp - 0x28]
mov eax, edx
imul eax, dword [ebp - 0x190]
cdq
mov esi, eax
push 0x20592
push 0xf817ff3b
mov eax, dword [ebp - 0x3e4]
push eax
mov ecx, dword [ebp - 0x3e8]
push ecx
call fcn.100409b0
add eax, esi
and eax, dword [ebp - 0x614]
mov dword [0x10067140], eax
movzx edx, byte [0x1006706f]
movsx eax, byte [0x10067027]
lea ecx, [eax + edx + 0xd653]
mov byte [0x10067027], cl
mov edx, dword [0x100671a0]
or edx, dword [0x100671a4]
jne 0x10037e66
mov dword [ebp - 0x194], 1
jmp 0x10037e70
mov dword [ebp - 0x194], 0
movzx eax, word [ebp - 0x20]
imul eax, dword [ebp - 0x194]
cdq
mov dword [0x10067138], eax
mov dword [0x1006713c], edx
jmp 0x10037fa6
movzx eax, word [ebp - 0x20]
test eax, eax
jne 0x10037ea0
mov dword [ebp - 0x198], 1
jmp 0x10037eaa
mov dword [ebp - 0x198], 0
movzx ecx, word [ebp - 0x24]
cmp ecx, dword [ebp - 0x198]
jge 0x10037f22
movsx edx, byte [ebp - 0x12]
add edx, 0x445
mov byte [ebp - 0x13], dl
movsx eax, byte [ebp - 0x14]
test eax, eax
je 0x10037ee1
mov ecx, dword [0x10067194]
xor edx, edx
mov dword [ebp - 0x3a0], ecx
mov dword [ebp - 0x39c], edx
jmp 0x10037ef3
mov eax, dword [ebp - 0x50]
mov ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x3a0], eax
mov dword [ebp - 0x39c], ecx
mov edx, dword [ebp - 0x3a0]
mov eax, dword [ebp - 0x39c]
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x958], edx
sub ecx, 0x5359bfcf
mov dword [0x10067128], ecx
jmp 0x10037fa6
movsx eax, byte [0x10067027]
test eax, eax
jne 0x10037fa6
movzx ecx, word [0x10067190]
test ecx, ecx
je 0x10037f46
mov edx, dword [0x1006719c]
mov dword [ebp - 0x19c], edx
jmp 0x10037f51
mov eax, dword [0x10067168]
mov dword [ebp - 0x19c], eax
mov ecx, dword [ebp - 0x19c]
mov dword [0x10067134], ecx
mov ecx, dword [0x10067148]
mov esi, dword [0x1006714c]
movzx eax, word [ebp - 0x20]
cdq
push esi
push ecx
push edx
push eax
call fcn.100409b0
mov byte [ebp - 0x14], al
mov edx, dword [0x10067178]
mov eax, dword [0x1006717c]
mov ecx, dword [0x1006716c]
xor esi, esi
push eax
push edx
push esi
push ecx
call fcn.100409b0
mov edx, dword [0x1006716c]
mov ecx, eax
shr edx, cl
mov dword [0x1006716c], edx
mov eax, dword [ebp - 0xa8]
add eax, 0x32a
mov dword [ebp - 0x95c], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
add ecx, dword [ebp - 0x64]
adc edx, dword [ebp - 0x60]
movzx eax, word [ebp - 0x1c]
imul eax, eax, 0xcdd573b8
mov esi, eax
xor edi, edi
add esi, ecx
adc edi, edx
movzx ecx, word [ebp - 0x1c]
movzx edx, word [ebp - 0x1c]
not edx
add edx, ecx
not edx
movzx eax, byte [0x10067063]
not eax
mov ecx, dword [0x10067150]
add ecx, eax
imul ecx, edx
mov eax, ecx
cdq
add eax, esi
adc edx, edi
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
movzx eax, word [ebp - 0x28]
sar eax, 3
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov edx, dword [0x10067120]
mov eax, dword [0x10067124]
mov dword [ebp - 0x960], eax
mov byte [ebp - 0x12], dl
mov ecx, dword [ebp - 0xa8]
add ecx, 0x153
mov dword [ebp - 0x514], ecx
mov edx, 1
imul eax, edx, 6
movzx ecx, byte [eax + 0x10067c40]
movzx edx, byte [0x10067063]
add edx, ecx
mov byte [0x10067063], dl
movzx eax, byte [ebp - 0x15]
movzx ecx, word [ebp - 0x1c]
sub ecx, eax
movzx edx, word [ebp - 0x1c]
sub edx, ecx
mov word [ebp - 0x1c], dx
movsx eax, byte [ebp - 0x14]
test eax, eax
jne 0x10038086
xor ecx, ecx
mov dword [ebp - 0x61c], 1
mov dword [ebp - 0x618], ecx
jmp 0x10038091
xorps xmm0, xmm0
movlpd qword [ebp - 0x61c], xmm0
movzx eax, byte [0x10067063]
not eax
cdq
mov edx, dword [0x10067138]
not edx
sub edx, dword [ebp - 0x61c]
add edx, eax
mov word [0x10067190], dx
call fcn.1000c180
movzx eax, al
test eax, eax
jne 0x100382cc
movsx eax, word [0x1006712c]
sub eax, 0xd01c
cdq
mov dword [0x100671a0], eax
mov dword [0x100671a4], edx
mov eax, dword [0x10067150]
sub eax, 0x2d
cdq
mov ecx, dword [ebp - 0x50]
sub ecx, eax
mov eax, dword [ebp - 0x4c]
sbb eax, edx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x64]
or ecx, dword [ebp - 0x60]
je 0x1003810f
mov eax, dword [0x10067150]
cdq
mov dword [ebp - 0x3a8], eax
mov dword [ebp - 0x3a4], edx
jmp 0x10038121
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x3a8], edx
mov dword [ebp - 0x3a4], eax
mov ecx, dword [ebp - 0x3a8]
mov edx, dword [ebp - 0x3a4]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], edx
movzx eax, word [0x10067154]
test eax, eax
jne 0x1003814a
mov dword [ebp - 0x1a0], 1
jmp 0x10038154
mov dword [ebp - 0x1a0], 0
movzx ecx, word [ebp - 0x20]
cmp dword [ebp - 0x1a0], ecx
jle 0x1003816c
mov dword [ebp - 0x1a4], 1
jmp 0x10038176
mov dword [ebp - 0x1a4], 0
movsx edx, byte [ebp - 0x14]
not edx
cmp dword [ebp - 0x1a4], edx
je 0x10038190
mov dword [ebp - 0x1a8], 1
jmp 0x1003819a
mov dword [ebp - 0x1a8], 0
mov eax, dword [ebp - 0x1a8]
not eax
test eax, eax
je 0x10038272
movsx ecx, word [0x10067198]
cmp dword [0x10067140], ecx
jg 0x10038202
mov dl, byte [0x10067063]
sub dl, 1
mov byte [0x10067063], dl
mov eax, dword [ebp - 0x64]
add eax, 0x1795a58c
mov ecx, dword [0x10067194]
add ecx, eax
mov dword [0x10067194], ecx
movsx eax, byte [0x10067026]
cdq
push edx
push eax
mov edx, dword [0x10067174]
push edx
mov eax, dword [0x10067170]
push eax
call fcn.100409b0
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
jmp 0x10038270
cmp dword [0x10067140], 0
je 0x10038270
mov eax, dword [0x10067140]
add eax, 0x8a9b
cdq
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov ecx, dword [ebp - 0x58]
mov edx, dword [0x10067178]
mov eax, dword [0x1006717c]
add edx, dword [ebp - 0x5c]
adc eax, ecx
mov ecx, dword [0x10067178]
mov esi, dword [0x1006717c]
sub ecx, edx
sbb esi, eax
mov dword [0x10067178], ecx
mov dword [0x1006717c], esi
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x964], eax
sub edx, dword [0x10067160]
mov dword [ebp - 0x54], edx
movsx eax, word [ebp - 0x38]
cdq
mov dword [0x10067138], eax
mov dword [0x1006713c], edx
jmp 0x100382c2
movsx ecx, byte [ebp - 0x13]
test ecx, ecx
je 0x100382c2
movzx eax, word [ebp - 0x28]
cdq
and eax, 0xd0f4de5f
and edx, 0xcb2cf
mov dword [0x10067138], eax
mov dword [0x1006713c], edx
movsx eax, byte [ebp - 0x13]
cdq
sub eax, 0x18242680
sbb edx, 0x7811f
add eax, dword [ebp - 0x64]
adc edx, dword [ebp - 0x60]
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov eax, dword [0x10067118]
cdq
mov edx, 0x5a50a97c
sub edx, eax
mov word [ebp - 0x2c], dx
mov eax, 1
jmp 0x1003ea12
movzx eax, byte [str.OrOutput_of_signing]
mov ecx, dword [ebp - 0x44]
sub ecx, eax
mov dword [ebp - 0x44], ecx
movzx edx, word [0x10067154]
movsx eax, word [ebp - 0x2c]
imul eax, edx
movsx ecx, word [ebp - 0x2c]
sub ecx, eax
mov word [ebp - 0x2c], cx
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
movsx eax, word [ebp - 0x34]
cdq
sub eax, ecx
sbb edx, esi
mov dword [ebp - 0x624], eax
mov dword [ebp - 0x620], edx
mov edx, dword [ebp - 0x624]
or edx, dword [ebp - 0x620]
jne 0x10038328
mov dword [ebp - 0x1ac], 1
jmp 0x10038332
mov dword [ebp - 0x1ac], 0
movzx eax, word [ebp - 0x1c]
mov ecx, dword [0x1006711c]
not ecx
add ecx, eax
imul ecx, dword [ebp - 0x1ac]
mov edx, dword [0x10067120]
mov eax, dword [0x10067124]
mov dword [ebp - 0x968], eax
not edx
sub edx, ecx
mov byte [ebp - 0x12], dl
mov ecx, dword [ebp - 0x1b0]
add ecx, 0x95
and ecx, 0x57
mov edx, dword [ebp - 0x1b4]
imul edx, dword [ebp - 0x1b0]
mov eax, dword [ebp - 0x1b4]
sub eax, dword [ebp - 0x55c]
add eax, edx
cmp eax, ecx
je 0x1003ea10
mov byte [ebp - 0x15], 4
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x96c], edx
add ecx, 0xd4a8
movsx eax, word [ebp - 0x2c]
cdq
add eax, ecx
mov dword [0x10067134], eax
movzx eax, word [ebp - 0x28]
mov ecx, dword [0x10067134]
add ecx, eax
mov edx, dword [0x10067134]
imul edx, ecx
mov dword [0x10067134], edx
movsx eax, word [ebp - 0x34]
cdq
mov ecx, dword [0x10067158]
sub ecx, eax
mov eax, dword [0x1006715c]
sbb eax, edx
mov dword [0x10067158], ecx
mov dword [0x1006715c], eax
movzx ecx, byte [ebp - 0x15]
mov dword [ebp - 0x1b8], ecx
cmp dword [ebp - 0x1b8], 4
ja case.default.0x1003840a
mov edx, dword [ebp - 0x1b8]
jmp dword [edx*4 + 0x1003ea24]
mov ecx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
movzx eax, byte [0x1006706f]
cdq
push esi
push ecx
push edx
push eax
call fcn.100409b0
mov ecx, eax
movzx eax, byte [0x1006706f]
cdq
add eax, ecx
mov byte [0x1006706f], al
movzx eax, byte [0x10067063]
cdq
mov ecx, eax
sub ecx, dword [0x10067158]
movzx eax, byte [0x10067063]
cdq
xor eax, ecx
mov byte [0x10067063], al
jmp case.default.0x1003840a
mov edx, dword [0x10067120]
mov eax, dword [0x10067124]
sub edx, 1
sbb eax, 0
mov dword [0x10067120], edx
mov dword [0x10067124], eax
movsx ecx, word [0x1006712c]
mov edx, dword [0x10067118]
lea eax, [ecx + edx + 0xf7]
mov word [0x1006712c], ax
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x48], ecx
jmp case.default.0x1003840a
xor edx, edx
mov dword [ebp - 0x40], 0x511f4770
mov dword [ebp - 0x3c], edx
movzx eax, byte [ebp - 0x15]
cdq
xor eax, 0x54ceb795
mov word [ebp - 0x20], ax
mov eax, dword [0x10067194]
add eax, 0x59ca
mov dword [0x10067140], eax
movzx ecx, byte [str.OrOutput_of_signing]
sub ecx, 0x88
jne 0x100384ea
xor edx, edx
mov dword [ebp - 0x3f0], 1
mov dword [ebp - 0x3ec], edx
jmp 0x100384f5
xorps xmm0, xmm0
movlpd qword [ebp - 0x3f0], xmm0
mov eax, dword [ebp - 0x3f0]
mov ecx, dword [ebp - 0x3ec]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], ecx
jmp case.default.0x1003840a
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x70]
mov cl, 7
call fcn.10040ac0
mov dword [0x10067170], eax
mov dword [0x10067174], edx
movzx eax, byte [0x1006704f]
cdq
add eax, 0x83eb7914
adc edx, 0xf4b3b
mov dword [0x10067120], eax
mov dword [0x10067124], edx
movsx eax, byte [0x10067026]
not eax
cdq
sub eax, dword [0x10067158]
sbb edx, dword [0x1006715c]
mov dword [ebp - 0x62c], eax
mov dword [ebp - 0x628], edx
mov edx, dword [ebp - 0x62c]
or edx, dword [ebp - 0x628]
jne 0x1003857e
mov dword [ebp - 0x1bc], 1
jmp 0x10038588
mov dword [ebp - 0x1bc], 0
movzx eax, byte [ebp - 0x15]
or eax, dword [ebp - 0x48]
add eax, dword [ebp - 0x1bc]
mov dword [str.Y__W1_], eax
movzx eax, byte [ebp - 0x15]
cdq
add eax, dword [ebp - 0x64]
adc edx, dword [ebp - 0x60]
mov dword [ebp - 0x634], eax
mov dword [ebp - 0x630], edx
mov ecx, dword [ebp - 0x634]
or ecx, dword [ebp - 0x630]
jne 0x100385d3
xor edx, edx
mov dword [ebp - 0x63c], 1
mov dword [ebp - 0x638], edx
jmp 0x100385de
xorps xmm0, xmm0
movlpd qword [ebp - 0x63c], xmm0
movsx eax, byte [ebp - 0x11]
cdq
push edx
push eax
mov eax, dword [0x10067164]
push eax
mov ecx, dword [0x10067160]
push ecx
call fcn.100409b0
mov esi, eax
add esi, 0xa7bb
not esi
movsx eax, word [ebp - 0x38]
cdq
push 0x6babd
push 0xa3a523fa
push edx
push eax
call fcn.100409b0
mov edx, dword [ebp - 0x63c]
sub edx, eax
add edx, esi
mov word [0x10067154], dx
jmp case.default.0x1003840a
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x970], edx
xor ecx, 0x1a34
mov eax, dword [0x10067150]
cdq
or eax, ecx
mov dword [0x10067150], eax
movsx eax, byte [ebp - 0x11]
imul ecx, eax, 0xc061e086
mov byte [0x10067026], cl
cmp dword [0x10067140], 0
jne 0x1003866e
mov dword [ebp - 0x1c0], 1
jmp 0x10038678
mov dword [ebp - 0x1c0], 0
movzx edx, word [0x10067144]
movsx eax, word [ebp - 0x38]
not eax
xor eax, edx
add eax, dword [ebp - 0x1c0]
mov dword [ebp - 0x44], eax
mov ecx, 2
mov word [ebp - 0x34], cx
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x974], eax
xor edx, 0xcaeff42e
mov word [0x10067190], dx
movsx ecx, word [ebp - 0x2c]
add ecx, dword [0x10067168]
mov edx, dword [0x10067168]
sub edx, ecx
mov dword [0x10067168], edx
mov eax, dword [0x10067134]
xor ecx, ecx
add eax, dword [ebp - 0x50]
adc ecx, dword [ebp - 0x4c]
mov dword [ebp - 0x644], eax
mov dword [ebp - 0x640], ecx
mov edx, dword [ebp - 0x644]
or edx, dword [ebp - 0x640]
jne 0x10038705
xor eax, eax
mov dword [ebp - 0x3f8], 1
mov dword [ebp - 0x3f4], eax
jmp 0x10038710
xorps xmm0, xmm0
movlpd qword [ebp - 0x3f8], xmm0
cmp dword [ebp - 0x54], 0
jne 0x1003872a
xor ecx, ecx
mov dword [ebp - 0x400], 1
mov dword [ebp - 0x3fc], ecx
jmp 0x10038735
xorps xmm0, xmm0
movlpd qword [ebp - 0x400], xmm0
mov edx, dword [0x10067188]
add edx, dword [ebp - 0x3f8]
mov eax, dword [0x1006718c]
adc eax, dword [ebp - 0x3f4]
sub edx, dword [ebp - 0x400]
sbb eax, dword [ebp - 0x3fc]
mov dword [0x100671a0], edx
mov dword [0x100671a4], eax
movsx ecx, word [ebp - 0x34]
mov dword [ebp - 0xac], ecx
cmp dword [ebp - 0xac], 0
je 0x10038791
cmp dword [ebp - 0xac], 1
je 0x100387fc
cmp dword [ebp - 0xac], 2
je 0x10038844
jmp 0x1003889a
movsx edx, byte [0x10067026]
mov eax, dword [ebp - 0x44]
sub eax, edx
mov dword [ebp - 0x44], eax
push 0x6a89
push 0x4b2affe2
mov ecx, dword [ebp - 0x60]
push ecx
mov edx, dword [ebp - 0x64]
push edx
call fcn.100409b0
mov dword [0x10067148], eax
mov dword [0x1006714c], edx
mov eax, dword [0x10067134]
xor ecx, ecx
mov edx, dword [ebp - 0x68]
push edx
mov edx, dword [ebp - 0x6c]
push edx
push ecx
push eax
call fcn.100409b0
mov dword [0x10067134], eax
movzx eax, word [ebp - 0x28]
movzx ecx, word [ebp - 0x28]
sub ecx, eax
not ecx
mov eax, ecx
cdq
mov dword [0x10067170], eax
mov dword [0x10067174], edx
jmp 0x1003889a
movzx edx, byte [0x10067063]
movzx eax, word [0x10067144]
sub eax, edx
mov word [0x10067144], ax
mov cx, word [0x10067c3c]
mov word [0x10067144], cx
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
push 0xdc6ab
push 0xb5d9366f
push eax
push edx
call fcn.100409b0
mov dword [0x10067148], eax
mov dword [0x1006714c], edx
jmp 0x1003889a
mov ecx, dword [0x10067178]
mov edx, dword [0x1006717c]
push 0
push 0xbf9f
push edx
push ecx
call fcn.100409b0
mov dword [0x10067168], eax
mov eax, dword [0x10067c3c]
xor ecx, ecx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ecx
movzx edx, word [0x10067154]
imul eax, edx, 0xdbdc391f
mov dword [ebp - 0x48], eax
mov ecx, dword [0x100671a0]
sub ecx, 0xff
mov edx, dword [0x10067194]
or edx, ecx
mov dword [0x10067194], edx
mov eax, dword [0x10067c3c]
mov dword [ebp - 0xb0], eax
movsx ecx, byte [ebp - 0x14]
add ecx, 0x80
mov byte [0x10067027], cl
mov dx, word [ebp - 0x1c]
sub dx, 1
mov word [ebp - 0x1c], dx
mov eax, dword [ebp - 0xb0]
add eax, 0x21
mov dword [ebp - 0x978], eax
mov dword [ebp - 4], 6
movsx eax, byte [0x10067026]
cdq
xor eax, dword [0x10067160]
xor edx, dword [0x10067164]
push edx
push eax
mov ecx, dword [0x10067164]
push ecx
mov edx, dword [0x10067160]
push edx
call fcn.100409b0
mov dword [0x10067160], eax
mov dword [0x10067164], edx
imul eax, dword [ebp - 0x44], 0x9bd1cf37
mov byte [ebp - 0x13], al
movsx eax, byte [ebp - 0x14]
shl eax, 8
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
jmp 0x10038952
mov dword [ebp - 4], 0xffffffff
jmp 0x10038962
mov ecx, dword [ebp - 0xb0]
add ecx, 0xc1
mov dword [ebp - 0x560], ecx
mov edx, dword [str.api_version]
mov dword [ebp - 0x8a0], edx
mov eax, dword [0x100534fc]
mov dword [ebp - 0x89c], eax
mov ecx, dword [0x10053500]
mov dword [ebp - 0x898], ecx
lea edx, [ebp - 0x8a0]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov byte [ebp - 0x12], al
mov eax, dword [ebp - 0xb0]
add eax, 0xbf82
mov dword [ebp - 0x97c], eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov eax, dword [0x10067148]
mov esi, dword [0x1006714c]
mov dword [ebp - 0x64c], eax
mov dword [ebp - 0x648], esi
mov dword [ebp - 0x654], ecx
mov dword [ebp - 0x650], edx
mov ecx, dword [ebp - 0x648]
cmp ecx, dword [ebp - 0x650]
jb 0x10038a0b
ja 0x100389ff
mov edx, dword [ebp - 0x64c]
cmp edx, dword [ebp - 0x654]
jbe 0x10038a0b
mov dword [ebp - 0x1c4], 1
jmp 0x10038a15
mov dword [ebp - 0x1c4], 0
mov eax, dword [0x10067148]
mov ecx, dword [0x1006714c]
mov dword [ebp - 0x65c], eax
mov dword [ebp - 0x658], ecx
cmp dword [ebp - 0x658], 0
jl 0x10038a4c
jg 0x10038a40
cmp dword [ebp - 0x65c], 0x40
jbe 0x10038a4c
mov dword [ebp - 0x1c8], 1
jmp 0x10038a56
mov dword [ebp - 0x1c8], 0
mov edx, dword [ebp - 0x1c4]
cmp edx, dword [ebp - 0x1c8]
je 0x10038b24
movzx eax, byte [0x10067180]
push eax
push 0x3e
push 0x6a
push 0
call fcn.10032de0
movsx eax, al
cdq
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov ecx, dword [ebp - 0x50]
or ecx, dword [ebp - 0x4c]
je 0x10038b24
mov dword [ebp - 4], 8
mov edx, dword [0x10067158]
sub edx, 0x4ba97110
mov eax, dword [str.Y__W1_]
and eax, edx
mov dword [str.Y__W1_], eax
movzx ecx, byte [str.OrOutput_of_signing]
add ecx, 0xf9
mov dword [0x1006719c], ecx
mov dl, byte [0x10067c3c]
mov byte [0x10067026], dl
mov eax, dword [str.Y__W1_]
sub eax, 0x9e
mov word [ebp - 0x38], ax
jmp 0x10038b14
mov dword [ebp - 4], 0xffffffff
jmp 0x10038b24
mov dword [0x10067134], 0x89
mov eax, dword [0x1006711c]
shr eax, 4
mov byte [ebp - 0x15], al
mov ecx, dword [ebp - 0x48]
add ecx, dword [str.Y__W1_]
mov byte [ebp - 0x13], cl
mov edx, dword [ebp - 0x560]
or edx, 0x35a7
mov eax, 0x36cb
sub eax, edx
mov dword [ebp - 0x564], eax
mov ecx, dword [0x10067168]
or ecx, 0xd76c06fc
movzx edx, word [ebp - 0x20]
sub edx, ecx
xor eax, eax
mov dword [0x100671a8], edx
mov dword [0x100671ac], eax
movsx ecx, byte [ebp - 0x11]
imul edx, ecx, 0xe4425339
mov word [ebp - 0x34], dx
xor eax, eax
mov ecx, dword [0x10067160]
sub ecx, dword [ebp - 0x54]
mov edx, dword [0x10067164]
sbb edx, eax
mov eax, dword [0x10067160]
sub eax, ecx
mov ecx, dword [0x10067164]
sbb ecx, edx
mov dword [0x10067160], eax
mov dword [0x10067164], ecx
call fcn.10029500
test eax, eax
je 0x10038d2a
xor edx, edx
mov dword [0x10067170], 0x51686924
mov dword [0x10067174], edx
mov eax, dword [0x1006716c]
add eax, 0x30
mov dword [ebp - 0x48], eax
mov cl, byte [ebp - 0x12]
add cl, 1
mov byte [ebp - 0x12], cl
mov edx, dword [0x10067c3c]
mov dword [0x1006711c], edx
movzx eax, word [0x10067190]
cdq
or eax, dword [0x10067160]
mov dword [0x10067168], eax
movsx eax, word [ebp - 0x30]
cdq
sub eax, dword [0x10067158]
sbb edx, dword [0x1006715c]
mov dword [0x10067170], eax
mov dword [0x10067174], edx
call fcn.10012ca0
test eax, eax
jne 0x10038d25
mov eax, 0xffffdc77
mov word [ebp - 0x38], ax
mov ecx, dword [ebp - 0x6c]
add ecx, 0x6c6aff03
mov edx, dword [ebp - 0x68]
adc edx, 0
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], edx
mov byte [0x1006704f], 2
imul eax, dword [0x1006711c], 0x34dd
movsx ecx, byte [ebp - 0x12]
xor ecx, eax
mov byte [ebp - 0x12], cl
mov edx, dword [0x10067180]
not edx
mov eax, dword [0x10067184]
not eax
mov ecx, dword [0x10067138]
add ecx, dword [0x10067188]
mov esi, dword [0x1006713c]
adc esi, dword [0x1006718c]
push eax
push edx
push esi
push ecx
call fcn.100409b0
mov ecx, eax
mov esi, edx
movsx eax, byte [ebp - 0x14]
cdq
mov edi, dword [ebp - 0x6c]
sub edi, 0xb5e24430
mov ebx, dword [ebp - 0x68]
sbb ebx, 0
sub edi, eax
sbb ebx, edx
xor edi, ecx
xor ebx, esi
mov dword [ebp - 0x664], edi
mov dword [ebp - 0x660], ebx
mov edx, dword [ebp - 0x664]
or edx, dword [ebp - 0x660]
jne 0x10038ce1
mov dword [ebp - 0x1cc], 1
jmp 0x10038ceb
mov dword [ebp - 0x1cc], 0
mov eax, dword [ebp - 0x1cc]
mov dword [0x10067128], eax
mov ecx, dword [0x100671a8]
mov edx, dword [0x100671ac]
push 0
push 0x8f7dda09
push edx
push ecx
call fcn.100409b0
mov dword [0x10067120], eax
mov dword [0x10067124], edx
mov eax, 1
jmp 0x1003ea12
jmp 0x1003ea10
movzx eax, byte [ebp - 0x30]
push eax
push 0x1c
push 0
mov ecx, dword [0x10067178]
mov edx, dword [0x1006717c]
mov dword [ebp - 0x980], edx
movzx eax, cl
push eax
call fcn.10031120
movsx cx, al
mov word [ebp - 0x30], cx
movsx edx, word [ebp - 0x30]
test edx, edx
je 0x10038d6a
mov dword [ebp - 0x1d0], 1
jmp 0x10038d74
mov dword [ebp - 0x1d0], 0
movsx eax, word [ebp - 0x30]
cmp eax, 0x63
je 0x10038d89
mov dword [ebp - 0x1d4], 1
jmp 0x10038d93
mov dword [ebp - 0x1d4], 0
mov ecx, dword [ebp - 0x1d0]
cmp ecx, dword [ebp - 0x1d4]
jle 0x10038ddf
movzx edx, word [ebp - 0x20]
movsx eax, byte [0x10067027]
cmp eax, edx
jne 0x10038ddd
movzx ecx, word [0x10067190]
imul edx, ecx, 0x13
movsx eax, byte [ebp - 0x14]
add eax, edx
mov byte [ebp - 0x14], al
push 0
push 0x2919
mov ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x50]
push edx
call fcn.100409b0
mov word [0x1006712c], ax
jmp 0x10038e4e
mov eax, 0xcb1d3713
or eax, 0x28e1e
je 0x10038e4e
movzx ecx, byte [0x10067063]
sub ecx, dword [0x1006719c]
mov byte [0x10067063], cl
mov eax, dword [0x10067148]
mov edx, dword [0x1006714c]
mov cl, 5
call fcn.10040a10
mov byte [ebp - 0x13], al
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x984], eax
mov ecx, dword [ebp - 0x6c]
sub ecx, edx
movsx edx, byte [ebp - 0x11]
mov eax, dword [0x10067140]
sub eax, edx
cdq
mov esi, eax
add esi, ecx
movsx eax, byte [ebp - 0x12]
movsx ecx, word [ebp - 0x2c]
not ecx
and eax, ecx
cdq
add eax, 0x224aa41c
not eax
add eax, esi
mov word [ebp - 0x28], ax
mov edx, dword [ebp - 0x44]
shl edx, 1
xor eax, eax
mov dword [0x100671a0], edx
mov dword [0x100671a4], eax
movsx eax, byte [0x10067026]
cdq
mov ecx, dword [0x10067178]
mov esi, dword [0x1006717c]
add ecx, eax
adc esi, edx
mov dword [0x10067178], ecx
mov dword [0x1006717c], esi
movsx eax, word [ebp - 0x30]
cdq
mov ecx, eax
sub ecx, dword [0x10067188]
movsx eax, word [ebp - 0x30]
cdq
add eax, ecx
mov word [ebp - 0x30], ax
movzx edx, byte [ebp - 0x15]
test edx, edx
je 0x10038eb0
movzx eax, byte [ebp - 0x15]
mov dword [ebp - 0x1d8], eax
jmp 0x10038ebc
mov ecx, dword [0x1006719c]
mov dword [ebp - 0x1d8], ecx
mov dx, word [ebp - 0x1d8]
mov word [0x10067198], dx
mov eax, dword [0x10067c3c]
mov dword [ebp - 0xb4], eax
mov dword [ebp - 4], 0xa
movzx eax, word [ebp - 0x28]
cdq
mov dword [ebp - 0x66c], eax
mov dword [ebp - 0x668], edx
mov ecx, dword [ebp - 0x668]
cmp ecx, dword [ebp - 0x68]
jl 0x10038f11
jg 0x10038f05
mov edx, dword [ebp - 0x66c]
cmp edx, dword [ebp - 0x6c]
jbe 0x10038f11
mov dword [ebp - 0x1dc], 1
jmp 0x10038f1b
mov dword [ebp - 0x1dc], 0
movzx eax, word [ebp - 0x28]
cmp eax, 0x21
jle 0x10038f30
mov dword [ebp - 0x1e0], 1
jmp 0x10038f3a
mov dword [ebp - 0x1e0], 0
mov ecx, dword [ebp - 0x1dc]
cmp ecx, dword [ebp - 0x1e0]
jle 0x10038fb8
mov edx, dword [str.Y__W1_]
and edx, 0x3fd562de
mov byte [ebp - 0x11], dl
push 0
push 0x685b
mov eax, dword [0x100671a4]
push eax
mov ecx, dword [0x100671a0]
push ecx
call fcn.100409b0
mov dword [0x10067148], eax
mov dword [0x1006714c], edx
mov edx, dword [0x1006711c]
sub edx, 1
mov dword [0x1006711c], edx
mov eax, dword [ebp - 0x50]
or eax, dword [ebp - 0x4c]
je 0x10038f9e
movsx ecx, byte [ebp - 0x11]
mov dword [ebp - 0x1e4], ecx
jmp 0x10038fa8
movzx edx, word [ebp - 0x1c]
mov dword [ebp - 0x1e4], edx
mov eax, dword [ebp - 0x1e4]
mov dword [0x10067134], eax
jmp 0x10039086
mov byte [ebp - 0x12], 0x26
push 0
push 0x84
mov ecx, dword [0x1006715c]
push ecx
mov edx, dword [0x10067158]
push edx
call fcn.100409b0
mov word [ebp - 0x24], ax
mov eax, dword [ebp - 0x44]
xor ecx, ecx
mov dword [0x10067180], eax
mov dword [0x10067184], ecx
movzx edx, byte [str.OrOutput_of_signing]
test edx, edx
jne 0x10039001
mov dword [ebp - 0x1e8], 1
jmp 0x1003900b
mov dword [ebp - 0x1e8], 0
movsx eax, word [ebp - 0x34]
test eax, eax
jne 0x10039027
xor ecx, ecx
mov dword [ebp - 0x408], 1
mov dword [ebp - 0x404], ecx
jmp 0x10039032
xorps xmm0, xmm0
movlpd qword [ebp - 0x408], xmm0
mov ecx, dword [ebp - 0x408]
sub ecx, dword [0x10067160]
mov esi, dword [ebp - 0x404]
sbb esi, dword [0x10067164]
movsx edx, word [0x10067198]
movzx eax, word [ebp - 0x24]
imul eax, edx
cdq
push esi
push ecx
push edx
push eax
call fcn.100409b0
mov ecx, eax
mov esi, edx
movsx edx, word [ebp - 0x2c]
not edx
add edx, dword [ebp - 0x1e8]
mov eax, edx
imul eax, dword [0x10067118]
cdq
xor eax, ecx
xor edx, esi
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
jmp 0x100390e2
mov dword [ebp - 4], 0xffffffff
jmp 0x100390f2
mov edx, dword [ebp - 0xb4]
add edx, 0x278
mov dword [ebp - 0x50c], edx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
sub eax, 0xd04d9cd6
sbb ecx, 0xcd1fd
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
mov dx, word [0x10067c3c]
mov word [ebp - 0x2c], dx
mov eax, dword [ebp - 0xb4]
add eax, 0x310
mov dword [ebp - 0x988], eax
movzx ecx, byte [ebp - 0x1c]
push ecx
movzx edx, byte [0x10067063]
push edx
push 0
call fcn.100314c0
movzx eax, al
cdq
mov dword [0x10067160], eax
mov dword [0x10067164], edx
mov eax, dword [0x10067160]
or eax, dword [0x10067164]
je 0x10039173
mov dword [ebp - 0x1ec], 1
jmp 0x1003917d
mov dword [ebp - 0x1ec], 0
cmp dword [0x10067160], 0x48
jne 0x1003918f
cmp dword [0x10067164], 0
je 0x1003919b
mov dword [ebp - 0x1f0], 1
jmp 0x100391a5
mov dword [ebp - 0x1f0], 0
mov ecx, dword [ebp - 0x1ec]
cmp ecx, dword [ebp - 0x1f0]
jle 0x100391b5
jmp 0x100391f1
movsx edx, word [0x1006712c]
xor edx, dword [ebp - 0x44]
mov eax, dword [ebp - 0x44]
sub eax, edx
mov dword [ebp - 0x44], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
push 0
push 0x23ef
push edx
push ecx
call fcn.100409b0
mov word [0x10067154], ax
mov eax, dword [ebp - 0x50]
add eax, 0xa314
mov ecx, dword [ebp - 0x54]
xor ecx, eax
mov dword [ebp - 0x54], ecx
mov edx, dword [ebp - 0xb4]
add edx, 0x5c
mov dword [ebp - 0x88], edx
imul eax, dword [ebp - 0x48], 0x45be
mov dword [0x10067194], eax
mov ecx, dword [0x10067c3c]
mov dword [ebp - 0x44], ecx
mov dx, word [0x10067198]
add dx, 1
mov word [0x10067198], dx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
add eax, 0x50
adc ecx, 0
mov dword [0x10067180], eax
mov dword [0x10067184], ecx
mov edx, dword [ebp - 0x88]
add edx, dword [ebp - 0x564]
mov eax, dword [ebp - 0x88]
imul eax, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x88]
imul ecx, dword [ebp - 0x50c]
add ecx, eax
cmp ecx, edx
je 0x1003ea10
mov dword [ebp - 4], 0xc
movsx eax, byte [ebp - 0x13]
cdq
mov ecx, eax
sub ecx, 0x94f0919e
mov eax, dword [0x10067118]
cdq
add eax, ecx
mov dword [0x10067118], eax
xor edx, edx
mov eax, dword [0x10067120]
mov ecx, dword [0x10067124]
add eax, dword [0x10067194]
adc ecx, edx
mov edx, dword [0x10067120]
mov esi, dword [0x10067124]
sub edx, eax
sbb esi, ecx
mov dword [0x10067120], edx
mov dword [0x10067124], esi
movzx eax, word [ebp - 0x24]
cdq
mov ecx, eax
sub ecx, dword [0x100671a0]
movzx eax, word [ebp - 0x24]
cdq
and eax, ecx
mov word [ebp - 0x24], ax
jmp 0x10039331
mov dword [ebp - 4], 0xffffffff
jmp 0x10039341
mov eax, dword [0x10067148]
mov ecx, dword [0x1006714c]
mov dword [ebp - 0x674], eax
mov dword [ebp - 0x670], ecx
mov edx, dword [0x100671a4]
cmp edx, dword [ebp - 0x670]
ja 0x10039381
jb 0x10039375
mov eax, dword [0x100671a0]
cmp eax, dword [ebp - 0x674]
jae 0x10039381
mov dword [ebp - 0x1f4], 1
jmp 0x1003938b
mov dword [ebp - 0x1f4], 0
cmp dword [0x100671a4], 0
ja 0x100393ab
jb 0x1003939f
cmp dword [0x100671a0], 0x4c
jae 0x100393ab
mov dword [ebp - 0x1f8], 1
jmp 0x100393b5
mov dword [ebp - 0x1f8], 0
mov ecx, dword [ebp - 0x1f4]
cmp ecx, dword [ebp - 0x1f8]
jg 0x10039590
mov dword [ebp - 4], 0xe
cmp dword [ebp - 0x48], 0
je 0x10039447
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x98c], eax
xor edx, 0xd1
mov word [ebp - 0x24], dx
mov ecx, dword [0x10067134]
imul ecx, dword [0x10067140]
add ecx, dword [0x10067140]
mov dword [0x10067140], ecx
mov edx, dword [0x10067168]
xor eax, eax
mov ecx, dword [0x10067174]
push ecx
mov ecx, dword [0x10067170]
push ecx
push eax
push edx
call fcn.100409b0
mov dword [0x10067168], eax
movzx edx, byte [0x1006706f]
imul edx, dword [0x1006716c]
movzx eax, byte [0x1006706f]
imul eax, edx
mov byte [0x1006706f], al
jmp 0x10039504
xor ecx, ecx
mov edx, dword [0x10067170]
sub edx, dword [0x10067194]
mov eax, dword [0x10067174]
sbb eax, ecx
mov dword [ebp - 0x67c], edx
mov dword [ebp - 0x678], eax
mov ecx, dword [ebp - 0x67c]
or ecx, dword [ebp - 0x678]
jne 0x10039497
mov edx, dword [str.Y__W1_]
not edx
movzx eax, word [0x10067190]
not eax
and eax, edx
jne 0x10039497
mov dword [ebp - 0x1fc], 0
jmp 0x100394a1
mov dword [ebp - 0x1fc], 1
mov ecx, dword [ebp - 0x1fc]
not ecx
test ecx, ecx
je 0x10039504
movzx eax, word [ebp - 0x28]
cdq
add eax, 0xf3c9f444
mov dword [0x10067128], eax
mov edx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x990], eax
add edx, 0xcab4d7f7
mov dword [0x1006719c], edx
mov ecx, dword [ebp - 0x64]
or ecx, dword [ebp - 0x60]
je 0x100394eb
movsx edx, word [0x10067198]
mov dword [ebp - 0x200], edx
jmp 0x100394f6
mov eax, dword [0x10067150]
mov dword [ebp - 0x200], eax
mov cx, word [ebp - 0x200]
mov word [0x10067154], cx
jmp 0x1003957e
mov dword [ebp - 4], 0xffffffff
jmp 0x1003958e
jmp 0x10039603
mov eax, dword [0x10067168]
not eax
test eax, eax
je 0x10039603
mov ecx, dword [0x10067180]
or ecx, dword [0x10067184]
jne 0x100395b5
mov dword [ebp - 0x204], 1
jmp 0x100395bf
mov dword [ebp - 0x204], 0
cmp dword [ebp - 0x204], 0x2f
jl 0x10039603
mov edx, dword [0x10067c3c]
xor eax, eax
mov dword [0x100671a0], edx
mov dword [0x100671a4], eax
mov byte [ebp - 0x12], 0x7c
movsx ecx, byte [ebp - 0x11]
imul edx, ecx, 0x4e
mov byte [ebp - 0x12], dl
movsx eax, word [0x1006712c]
add eax, 0x1f19
mov ecx, dword [0x10067118]
sub ecx, eax
mov dword [0x10067118], ecx
mov edx, dword [0x10067c3c]
mov dword [ebp - 0xb8], edx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x684], eax
mov dword [ebp - 0x680], ecx
mov edx, dword [ebp - 0x684]
or edx, dword [ebp - 0x680]
je 0x10039798
movsx eax, byte [0x10067027]
movsx ecx, word [ebp - 0x2c]
cmp ecx, eax
jle 0x1003964e
mov dword [ebp - 0x208], 1
jmp 0x10039658
mov dword [ebp - 0x208], 0
movsx edx, word [ebp - 0x2c]
cmp edx, 0x1b
jle 0x1003966d
mov dword [ebp - 0x20c], 1
jmp 0x10039677
mov dword [ebp - 0x20c], 0
mov eax, dword [ebp - 0x208]
cmp eax, dword [ebp - 0x20c]
jge 0x10039793
movsx ecx, byte [0x10067027]
movsx edx, byte [ebp - 0x11]
cmp edx, ecx
jl 0x100396f0
mov eax, dword [0x1006711c]
add eax, 0xe59c1dda
mov word [0x10067144], ax
movzx ecx, byte [0x1006704f]
test ecx, ecx
je 0x100396c2
movzx edx, byte [str.OrOutput_of_signing]
mov dword [ebp - 0x210], edx
jmp 0x100396cc
movsx eax, byte [ebp - 0x12]
mov dword [ebp - 0x210], eax
mov cx, word [ebp - 0x210]
mov word [ebp - 0x28], cx
movsx edx, word [0x10067198]
movzx eax, byte [0x1006704f]
sub eax, edx
mov word [ebp - 0x20], ax
jmp 0x10039793
movsx ecx, byte [0x10067027]
test ecx, ecx
jne 0x1003970f
xor edx, edx
mov dword [ebp - 0x410], 1
mov dword [ebp - 0x40c], edx
jmp 0x1003971a
xorps xmm0, xmm0
movlpd qword [ebp - 0x410], xmm0
mov eax, dword [0x10067158]
not eax
mov ecx, dword [0x1006715c]
not ecx
mov dword [ebp - 0x68c], eax
mov dword [ebp - 0x688], ecx
mov edx, dword [ebp - 0x688]
cmp edx, dword [ebp - 0x40c]
jb 0x10039793
ja 0x10039753
mov eax, dword [ebp - 0x68c]
cmp eax, dword [ebp - 0x410]
jb 0x10039793
movzx ecx, byte [ebp - 0x15]
movzx edx, byte [str.OrOutput_of_signing]
imul edx, ecx
movzx eax, byte [str.OrOutput_of_signing]
or eax, edx
mov byte [str.OrOutput_of_signing], al
movsx eax, byte [0x10067026]
cdq
sub eax, 0xd92e8c2e
mov word [ebp - 0x34], ax
movzx eax, byte [ebp - 0x15]
sar eax, 2
cdq
mov dword [0x10067160], eax
mov dword [0x10067164], edx
jmp 0x10039865
cmp dword [0x1006718c], 0
jg 0x100397bb
jl 0x100397af
cmp dword [0x10067188], 0xd3c3
ja 0x100397bb
mov dword [ebp - 0x21c], 1
jmp 0x100397c5
mov dword [ebp - 0x21c], 0
cmp dword [str.Y__W1_], 0
jne 0x100397da
mov dword [ebp - 0x214], 1
jmp 0x100397e4
mov dword [ebp - 0x214], 0
cmp dword [0x1006711c], 0
jne 0x100397f9
mov dword [ebp - 0x218], 1
jmp 0x10039803
mov dword [ebp - 0x218], 0
mov ecx, dword [ebp - 0x214]
cmp ecx, dword [ebp - 0x218]
jg 0x1003981d
mov dword [ebp - 0x220], 1
jmp 0x10039827
mov dword [ebp - 0x220], 0
mov edx, dword [ebp - 0x21c]
cmp edx, dword [ebp - 0x220]
jle 0x10039865
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0x70]
mov dword [ebp - 0x9b0], edx
movzx eax, word [ebp - 0x20]
cdq
mov esi, eax
add esi, ecx
movzx eax, word [ebp - 0x20]
cdq
add eax, esi
mov word [ebp - 0x20], ax
movsx eax, byte [ebp - 0x13]
movzx ecx, word [ebp - 0x20]
sub ecx, eax
mov byte [0x10067027], cl
mov edx, dword [ebp - 0xb8]
add edx, 0x2ee
mov dword [ebp - 0x518], edx
movzx eax, byte [0x1006704f]
not eax
cmp dword [ebp - 0x54], eax
ja 0x10039891
mov dword [ebp - 0x224], 1
jmp 0x1003989b
mov dword [ebp - 0x224], 0
movzx ecx, word [0x10067190]
not ecx
cmp dword [ebp - 0x224], ecx
jle 0x100398b8
mov dword [ebp - 0x230], 1
jmp 0x100398c2
mov dword [ebp - 0x230], 0
movsx edx, word [ebp - 0x30]
mov eax, dword [0x10067150]
not eax
cmp eax, edx
je 0x100398dd
mov dword [ebp - 0x228], 1
jmp 0x100398e7
mov dword [ebp - 0x228], 0
mov ecx, dword [0x10067170]
or ecx, dword [0x10067174]
jne 0x1003990a
cmp dword [0x10067150], 0
jne 0x1003990a
mov dword [ebp - 0x22c], 0
jmp 0x10039914
mov dword [ebp - 0x22c], 1
mov edx, dword [ebp - 0x228]
imul edx, dword [ebp - 0x22c]
not edx
cmp dword [ebp - 0x230], edx
jge 0x10039a27
movzx eax, word [0x10067190]
cmp dword [0x1006719c], eax
jl 0x1003994a
mov dword [ebp - 0x234], 1
jmp 0x10039954
mov dword [ebp - 0x234], 0
cmp dword [0x1006719c], 0x61
jl 0x10039969
mov dword [ebp - 0x238], 1
jmp 0x10039973
mov dword [ebp - 0x238], 0
mov ecx, dword [ebp - 0x234]
cmp ecx, dword [ebp - 0x238]
jg 0x100399cb
mov edx, dword [0x10067178]
mov eax, dword [0x1006717c]
push 0
push 0xa623
push eax
push edx
call fcn.100409b0
mov dword [0x10067180], eax
mov dword [0x10067184], edx
movsx ecx, word [ebp - 0x2c]
imul edx, ecx, 0x173a
mov byte [0x1006704f], dl
movzx eax, word [0x10067144]
mov ecx, dword [ebp - 0x54]
xor ecx, eax
mov edx, dword [ebp - 0x54]
or edx, ecx
mov dword [ebp - 0x54], edx
jmp 0x10039a22
movzx eax, byte [0x10067063]
test eax, eax
jne 0x10039a22
movzx ecx, byte [0x1006704f]
test ecx, ecx
jne 0x100399ed
mov dword [ebp - 0x23c], 1
jmp 0x100399f7
mov dword [ebp - 0x23c], 0
movzx edx, word [0x10067144]
sub edx, dword [ebp - 0x23c]
not edx
mov dword [str.Y__W1_], edx
mov byte [0x10067026], 0x4f
mov eax, dword [0x10067180]
sub eax, 0xdc6b62c3
mov dword [0x10067118], eax
jmp 0x10039b03
movsx eax, byte [ebp - 0x13]
cdq
mov dword [ebp - 0x694], eax
mov dword [ebp - 0x690], edx
mov ecx, dword [ebp - 0x690]
cmp ecx, dword [ebp - 0x4c]
jg 0x10039a5c
jl 0x10039a50
mov edx, dword [ebp - 0x694]
cmp edx, dword [ebp - 0x50]
ja 0x10039a5c
mov dword [ebp - 0x240], 1
jmp 0x10039a66
mov dword [ebp - 0x240], 0
movsx eax, word [0x1006712c]
test eax, eax
jne 0x10039a7d
mov dword [ebp - 0x244], 1
jmp 0x10039a87
mov dword [ebp - 0x244], 0
mov ecx, dword [ebp - 0x240]
cmp ecx, dword [ebp - 0x244]
je 0x10039b03
movzx edx, word [0x10067144]
mov eax, dword [0x1006711c]
sub eax, edx
mov ecx, dword [0x1006711c]
sub ecx, eax
mov dword [0x1006711c], ecx
mov edx, dword [0x10067178]
mov eax, dword [0x1006717c]
sub edx, dword [ebp - 0x6c]
sbb eax, dword [ebp - 0x68]
mov dword [0x10067178], edx
mov dword [0x1006717c], eax
movsx eax, byte [ebp - 0x11]
cdq
mov ecx, dword [0x10067178]
mov esi, dword [0x1006717c]
push edx
push eax
push esi
push ecx
call fcn.100409b0
mov ecx, dword [0x10067178]
mov esi, dword [0x1006717c]
xor ecx, eax
xor esi, edx
mov dword [0x10067178], ecx
mov dword [0x1006717c], esi
mov edx, dword [ebp - 0xb8]
add edx, 0x385
mov dword [ebp - 0x8c], edx
mov eax, 0x9f1a
mov word [ebp - 0x24], ax
mov ecx, dword [0x10067140]
mov dword [0x10067134], ecx
movzx eax, word [ebp - 0x28]
cdq
push 0x530c6
push 0x56bb8d77
push edx
push eax
call fcn.100409b0
mov byte [ebp - 0x13], al
mov edx, dword [0x10067150]
imul edx, dword [ebp - 0x48]
mov dword [0x10067150], edx
mov eax, dword [ebp - 0xb8]
add eax, 0x159
mov dword [ebp - 0x260], eax
mov dword [ebp - 4], 0x10
mov byte [ebp - 0x13], 0x70
mov ecx, dword [0x10067170]
sub ecx, dword [0x10067138]
mov edx, dword [0x10067174]
sbb edx, dword [0x1006713c]
mov dword [0x10067170], ecx
mov dword [0x10067174], edx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x9b4], ecx
add eax, 0x12e51f0a
mov word [0x1006712c], ax
mov ecx, dword [0x10067180]
add ecx, dword [ebp - 0x50]
mov eax, dword [0x10067180]
mov edx, dword [0x10067184]
call fcn.100409f0
mov dword [0x10067180], eax
mov dword [0x10067184], edx
jmp 0x10039c1e
mov dword [ebp - 4], 0xffffffff
jmp 0x10039c2e
mov ecx, dword [0x10067c3c]
mov dword [ebp - 0xbc], ecx
push 0
push 0
push 0
call fcn.100327b0
movzx edx, ax
mov dword [ebp - 0x54], edx
cmp dword [ebp - 0x54], 0
jae 0x10039cfa
movzx eax, word [ebp - 0x1c]
test eax, eax
je 0x10039ca8
movsx eax, byte [ebp - 0x12]
cdq
mov ecx, eax
add ecx, dword [ebp - 0x6c]
movsx eax, byte [ebp - 0x12]
cdq
add eax, ecx
mov byte [ebp - 0x12], al
movsx edx, byte [ebp - 0x12]
sub edx, 0x5206648c
mov byte [str.OrOutput_of_signing], dl
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x8a8], ecx
add eax, 0xce
mov word [0x10067144], ax
imul edx, dword [ebp - 0x54], 0x66
movzx eax, byte [ebp - 0x15]
imul eax, edx
mov byte [ebp - 0x15], al
jmp 0x10039cf5
mov eax, dword [0x10067118]
cdq
and eax, 0x308e94a0
and edx, 0xba20
mov dword [0x100671a8], eax
mov dword [0x100671ac], edx
mov ecx, dword [0x10067c3c]
mov dword [ebp - 0x48], ecx
mov edx, dword [0x10067134]
sub edx, dword [0x1006719c]
mov eax, dword [0x10067134]
imul eax, edx
mov dword [0x10067134], eax
mov ecx, dword [0x10067140]
add ecx, 0x93
mov dword [ebp - 0x48], ecx
jmp 0x10039d9f
movzx edx, word [ebp - 0x28]
cmp dword [str.Y__W1_], edx
jne 0x10039d9f
movzx eax, byte [str.OrOutput_of_signing]
mov ecx, dword [0x1006711c]
not ecx
movsx edx, word [ebp - 0x30]
xor edx, ecx
movsx ecx, byte [ebp - 0x12]
movzx ebx, byte [ebp - 0x15]
sub ebx, ecx
and ebx, edx
imul ebx, eax
not ebx
mov byte [0x10067027], bl
movzx edx, byte [0x1006704f]
add edx, dword [str.Y__W1_]
movzx eax, byte [0x1006704f]
imul eax, edx
mov byte [0x1006704f], al
movsx ecx, byte [0x10067026]
imul edx, ecx, 0x2fa6cbdf
mov byte [ebp - 0x11], dl
movzx eax, byte [ebp - 0x15]
movzx ecx, word [ebp - 0x1c]
sub ecx, eax
mov eax, ecx
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [ebp - 0x15]
cdq
mov edi, dword [ebp - 0x40]
mov ebx, dword [ebp - 0x3c]
sub edi, eax
sbb ebx, edx
sub edi, ecx
sbb ebx, esi
mov edx, dword [ebp - 0x44]
not edx
xor edx, dword [0x10067150]
xor eax, eax
push ebx
push edi
push eax
push edx
call fcn.100409b0
mov byte [ebp - 0x14], al
mov ecx, dword [ebp - 0xbc]
add ecx, 0x1d4
mov dword [ebp - 0x318], ecx
mov edx, dword [0x10067168]
xor eax, eax
mov ecx, dword [0x10067148]
mov esi, dword [0x1006714c]
push eax
push edx
push esi
push ecx
call fcn.100409b0
mov ecx, dword [0x10067148]
mov esi, dword [0x1006714c]
sub ecx, eax
sbb esi, edx
mov dword [0x10067148], ecx
mov dword [0x1006714c], esi
movsx edx, byte [ebp - 0x11]
test edx, edx
jne 0x10039e06
xor eax, eax
mov dword [ebp - 0x418], 1
mov dword [ebp - 0x414], eax
jmp 0x10039e11
xorps xmm0, xmm0
movlpd qword [ebp - 0x418], xmm0
mov ecx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x70]
and ecx, dword [ebp - 0x418]
and esi, dword [ebp - 0x414]
movzx edx, word [ebp - 0x28]
movsx eax, byte [ebp - 0x14]
imul eax, edx
cdq
push esi
push ecx
push edx
push eax
call fcn.100409b0
mov dword [ebp - 0x69c], eax
mov dword [ebp - 0x698], edx
mov eax, dword [ebp - 0x69c]
or eax, dword [ebp - 0x698]
jne 0x10039e66
xor ecx, ecx
mov dword [ebp - 0x6a4], 1
mov dword [ebp - 0x6a0], ecx
jmp 0x10039e71
xorps xmm0, xmm0
movlpd qword [ebp - 0x6a4], xmm0
mov edx, dword [0x10067194]
sub edx, dword [ebp - 0x64]
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x8ac], ecx
add eax, edx
xor eax, dword [ebp - 0x6a4]
mov dword [0x10067128], eax
mov edx, dword [0x100671a8]
mov eax, dword [0x100671ac]
push 0x91d17
push 0xe439e99d
push eax
push edx
call fcn.100409b0
mov byte [0x10067063], al
mov ecx, dword [ebp - 0xbc]
add ecx, 0x394
mov dword [ebp - 0x538], ecx
movzx edx, word [ebp - 0x20]
movzx eax, word [ebp - 0x20]
add eax, edx
cdq
sub eax, dword [0x10067138]
sbb edx, dword [0x1006713c]
movzx ecx, byte [str.OrOutput_of_signing]
mov esi, dword [ebp - 0x54]
sub esi, ecx
xor ecx, ecx
sub esi, dword [0x10067180]
sbb ecx, dword [0x10067184]
sub esi, eax
sbb ecx, edx
mov dword [ebp - 0x6ac], esi
mov dword [ebp - 0x6a8], ecx
mov edx, dword [ebp - 0x6ac]
or edx, dword [ebp - 0x6a8]
jne 0x10039f29
xor eax, eax
mov dword [ebp - 0x420], 1
mov dword [ebp - 0x41c], eax
jmp 0x10039f34
xorps xmm0, xmm0
movlpd qword [ebp - 0x420], xmm0
mov ecx, dword [ebp - 0x420]
mov edx, dword [ebp - 0x41c]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], edx
mov ax, word [0x10067c3c]
mov word [ebp - 0x28], ax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov dword [ebp - 0x8b0], edx
add ecx, 7
mov word [ebp - 0x34], cx
mov eax, dword [ebp - 0xbc]
add eax, 0x266
mov dword [ebp - 0x53c], eax
movzx ecx, word [ebp - 0x1c]
imul eax, ecx, 0x79913735
cdq
mov ecx, dword [0x100671a8]
mov esi, dword [0x100671ac]
add ecx, eax
adc esi, edx
mov dword [0x100671a8], ecx
mov dword [0x100671ac], esi
mov edx, dword [ebp - 0x54]
mov dword [str.Y__W1_], edx
mov eax, dword [0x10067c3c]
xor ecx, ecx
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x510]
add edx, 0x2d1
cmp edx, dword [ebp - 0x514]
je 0x1003ea10
movsx eax, word [ebp - 0x34]
mov dword [0x10067150], eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
add ecx, dword [ebp - 0x6c]
adc edx, dword [ebp - 0x68]
mov dword [ebp - 0x6b4], ecx
mov dword [ebp - 0x6b0], edx
mov eax, dword [ebp - 0x6b4]
or eax, dword [ebp - 0x6b0]
jne 0x1003a003
mov ecx, 1
mov word [ebp - 0x80], cx
jmp 0x1003a009
xor edx, edx
mov word [ebp - 0x80], dx
mov ax, word [ebp - 0x80]
mov word [0x10067190], ax
movsx ecx, byte [ebp - 0x11]
add ecx, 0x252a413f
movsx edx, word [ebp - 0x2c]
imul edx, ecx
mov word [ebp - 0x2c], dx
xor eax, eax
mov dword [0x10067170], 3
mov dword [0x10067174], eax
movsx ecx, word [0x10067198]
movsx edx, byte [ebp - 0x11]
add edx, ecx
mov byte [ebp - 0x11], dl
mov eax, dword [ebp - 0x48]
cdq
add eax, 0x3bfedeb1
adc edx, 0xf8542
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
movsx eax, word [0x1006712c]
not eax
mov byte [str.OrOutput_of_signing], al
mov ecx, dword [0x10067170]
mov edx, dword [0x10067174]
mov dword [ebp - 0x114], ecx
mov dword [ebp - 0x110], edx
cmp dword [ebp - 0x110], 0
jl 0x1003a248
jg 0x1003a0a0
cmp dword [ebp - 0x114], 0
jb 0x1003a248
cmp dword [ebp - 0x110], 0
jg 0x1003a248
jl 0x1003a0bc
cmp dword [ebp - 0x114], 3
ja 0x1003a248
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0x9a0], eax
mov ecx, dword [ebp - 0x9a0]
jmp dword [ecx*4 + 0x1003ea38]
mov edx, dword [0x10067c3c]
mov dword [ebp - 0xc0], edx
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
movsx edx, byte [ebp - 0x12]
add edx, 0x490fd80e
xor eax, eax
mov dword [0x10067148], edx
mov dword [0x1006714c], eax
movzx ecx, word [0x10067144]
imul edx, ecx, 0xdb98
movsx eax, byte [ebp - 0x13]
add eax, edx
mov byte [ebp - 0x13], al
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x8b8], edx
movsx eax, byte [ebp - 0x12]
cdq
add eax, ecx
mov byte [ebp - 0x12], al
mov eax, dword [ebp - 0xc0]
add eax, 0x9d
mov dword [ebp - 0x51c], eax
movzx ecx, byte [ebp - 0x15]
movzx edx, byte [str.OrOutput_of_signing]
cmp edx, ecx
je 0x1003a3ad
movzx eax, byte [0x1006706f]
cmp dword [str.Y__W1_], eax
ja 0x1003a34f
movzx ecx, word [ebp - 0x28]
imul edx, ecx, 0x93
mov byte [ebp - 0x13], dl
movsx eax, byte [ebp - 0x12]
movzx ecx, word [ebp - 0x20]
add ecx, eax
movzx edx, word [ebp - 0x20]
add edx, ecx
mov word [ebp - 0x20], dx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [ebp - 0x6bc], eax
mov dword [ebp - 0x6b8], ecx
mov edx, dword [ebp - 0x6bc]
or edx, dword [ebp - 0x6b8]
jne 0x1003a323
mov dword [ebp - 0x248], 1
jmp 0x1003a32d
mov dword [ebp - 0x248], 0
movsx eax, byte [ebp - 0x11]
imul eax, dword [0x10067134]
not eax
movsx ecx, word [ebp - 0x34]
imul ecx, eax
sub ecx, dword [ebp - 0x248]
mov dword [0x10067168], ecx
jmp 0x1003a3a8
cmp dword [0x10067194], 0
je 0x1003a3a8
mov edx, dword [ebp - 0x54]
sub edx, dword [0x10067194]
mov eax, dword [ebp - 0x54]
imul eax, edx
mov dword [ebp - 0x54], eax
mov ecx, dword [0x100671a8]
mov edx, dword [0x100671ac]
mov eax, dword [ebp - 0x60]
push eax
mov eax, dword [ebp - 0x64]
push eax
push edx
push ecx
call fcn.100409b0
mov dword [0x100671a8], eax
mov dword [0x100671ac], edx
mov ecx, dword [0x1006711c]
add ecx, dword [0x10067140]
add ecx, dword [0x10067140]
mov dword [0x10067140], ecx
jmp 0x1003a45d
movzx edx, byte [0x1006706f]
not edx
movsx eax, byte [ebp - 0x11]
not eax
cmp eax, edx
je 0x1003a3d4
xor ecx, ecx
mov dword [ebp - 0x430], 1
mov dword [ebp - 0x42c], ecx
jmp 0x1003a3df
xorps xmm0, xmm0
movlpd qword [ebp - 0x430], xmm0
mov edx, dword [0x10067158]
not edx
mov eax, dword [0x1006715c]
not eax
mov dword [ebp - 0x6c4], edx
mov dword [ebp - 0x6c0], eax
mov ecx, dword [ebp - 0x6c0]
cmp ecx, dword [ebp - 0x42c]
jb 0x1003a45d
ja 0x1003a418
mov edx, dword [ebp - 0x6c4]
cmp edx, dword [ebp - 0x430]
jbe 0x1003a45d
movsx eax, byte [ebp - 0x12]
movzx ecx, word [0x10067144]
imul ecx, eax
mov word [0x10067144], cx
movzx edx, word [0x10067154]
and edx, dword [0x10067140]
mov word [0x10067154], dx
mov eax, dword [0x10067168]
sub eax, 0x9b4b
xor ecx, ecx
mov edx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
sub edx, eax
sbb esi, ecx
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], esi
mov eax, dword [ebp - 0xc0]
add eax, 0x5f
mov dword [ebp - 0x8bc], eax
push 0
push 0x21
push 0
push 0x45
movsx eax, word [ebp - 0x2c]
cdq
push edx
push eax
mov ecx, dword [ebp - 0x60]
push ecx
mov edx, dword [ebp - 0x64]
push edx
call fcn.10034110
mov dword [0x100671a0], eax
mov dword [0x100671a4], edx
mov eax, dword [0x100671a0]
or eax, dword [0x100671a4]
je 0x1003a71d
push 0
push 0x2e
push 0
push 0
mov ecx, dword [0x10067148]
mov edx, dword [0x1006714c]
mov dword [ebp - 0x8c0], edx
movzx eax, cx
push eax
call fcn.100347a0
cwde
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x6cc], ecx
mov dword [ebp - 0x6c8], edx
mov eax, dword [ebp - 0x6cc]
or eax, dword [ebp - 0x6c8]
je 0x1003a69f
movzx ecx, word [0x100671a0]
push ecx
push 0xbc
push 0
movzx edx, word [ebp - 0x30]
push edx
push 0xb1
call fcn.100347a0
mov word [0x10067190], ax
movzx eax, word [0x10067190]
test eax, eax
jge 0x1003a52e
mov dword [ebp - 0x24c], 1
jmp 0x1003a538
mov dword [ebp - 0x24c], 0
movzx ecx, word [0x10067190]
cmp ecx, 0x20
jge 0x1003a550
mov dword [ebp - 0x250], 1
jmp 0x1003a55a
mov dword [ebp - 0x250], 0
mov edx, dword [ebp - 0x24c]
cmp edx, dword [ebp - 0x250]
je 0x1003a5fe
mov dword [ebp - 4], 0x12
movsx eax, word [ebp - 0x34]
movsx ecx, word [0x10067198]
sub ecx, eax
movsx edx, word [0x10067198]
add edx, ecx
mov word [0x10067198], dx
imul eax, dword [0x10067194], 0xa136cd26
mov word [0x10067190], ax
movsx ecx, word [ebp - 0x30]
imul ecx, dword [0x1006719c]
mov dword [0x1006719c], ecx
jmp 0x1003a5e9
mov dword [ebp - 4], 0xffffffff
jmp 0x1003a5f9
jmp 0x1003a69d
mov ecx, dword [0x10067134]
xor edx, edx
mov dword [ebp - 0x6d4], ecx
mov dword [ebp - 0x6d0], edx
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x6d4]
jne 0x1003a628
mov ecx, dword [ebp - 0x4c]
cmp ecx, dword [ebp - 0x6d0]
je 0x1003a69d
mov dx, word [0x10067c3c]
mov word [0x10067154], dx
movsx eax, word [0x1006712c]
test eax, eax
jne 0x1003a655
xor ecx, ecx
mov dword [ebp - 0x6dc], 1
mov dword [ebp - 0x6d8], ecx
jmp 0x1003a660
xorps xmm0, xmm0
movlpd qword [ebp - 0x6dc], xmm0
cmp dword [0x10067118], 0
jne 0x1003a675
mov dword [ebp - 0x254], 1
jmp 0x1003a67f
mov dword [ebp - 0x254], 0
movzx eax, word [ebp - 0x20]
add eax, dword [ebp - 0x254]
not eax
cdq
mov edx, dword [ebp - 0x6c]
add edx, dword [ebp - 0x6dc]
add edx, eax
mov dword [str.Y__W1_], edx
jmp 0x1003a71b
mov eax, dword [0x10067120]
mov ecx, dword [0x10067124]
not eax
not ecx
mov dword [ebp - 0x6e4], eax
mov dword [ebp - 0x6e0], ecx
mov edx, dword [ebp - 0x6e4]
or edx, dword [ebp - 0x6e0]
je 0x1003a71b
movzx eax, word [0x10067144]
mov ecx, dword [ebp - 0x54]
and ecx, eax
movsx edx, word [ebp - 0x2c]
sub edx, ecx
mov eax, dword [ebp - 0x44]
sub eax, 0xafb1a41e
add eax, dword [ebp - 0x50]
sub eax, edx
mov dword [0x10067150], eax
movzx eax, word [0x10067190]
cdq
mov ecx, eax
sub ecx, dword [0x100671a0]
movzx eax, word [0x10067190]
cdq
sub eax, ecx
mov word [0x10067190], ax
movsx edx, word [ebp - 0x38]
imul eax, edx, 0x3a8e
mov dword [0x1006711c], eax
jmp 0x1003a78c
mov ecx, dword [0x10067170]
add ecx, 0x3881c888
mov byte [0x1006706f], cl
movsx eax, word [0x1006712c]
cdq
mov edx, dword [0x10067160]
sub edx, dword [ebp - 0x6c]
add edx, eax
mov dword [0x1006711c], edx
mov eax, dword [ebp - 0x48]
cdq
and eax, 0xcaa1a905
and edx, 0xcd3f3
mov ecx, dword [0x10067180]
sub ecx, eax
mov eax, dword [0x10067184]
sbb eax, edx
mov dword [0x10067180], ecx
mov dword [0x10067184], eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov eax, dword [0x10067134]
xor esi, esi
push edx
push ecx
push esi
push eax
call fcn.100409b0
mov dword [0x10067134], eax
mov ecx, dword [ebp - 0xc0]
add ecx, 0xcc
mov dword [ebp - 0x520], ecx
mov dword [0x10067118], 4
mov edx, dword [0x10067118]
sub edx, 0x63f36a40
xor eax, eax
push eax
push edx
mov ecx, dword [0x10067184]
push ecx
mov edx, dword [0x10067180]
push edx
call fcn.100409b0
mov dword [0x10067180], eax
mov dword [0x10067184], edx
movzx eax, word [ebp - 0x1c]
cdq
add eax, dword [0x10067160]
adc edx, dword [0x10067164]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x48]
sub eax, 0x2a
cdq
mov dword [0x10067180], eax
mov dword [0x10067184], edx
mov eax, dword [0x10067118]
mov dword [ebp - 0x258], eax
cmp dword [ebp - 0x258], 4
ja case.default.0x1003a81d
mov ecx, dword [ebp - 0x258]
jmp dword [ecx*4 + 0x1003ea48]
movsx edx, byte [ebp - 0x13]
test edx, edx
je 0x1003a838
movzx eax, word [ebp - 0x24]
mov dword [ebp - 0x25c], eax
jmp 0x1003a842
movsx ecx, byte [ebp - 0x13]
mov dword [ebp - 0x25c], ecx
mov eax, dword [ebp - 0x25c]
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
movsx edx, word [ebp - 0x38]
test edx, edx
je 0x1003a85f
mov al, byte [ebp - 0x12]
mov byte [ebp - 0x78], al
jmp 0x1003a865
mov cl, byte [ebp - 0x12]
mov byte [ebp - 0x78], cl
movsx dx, byte [ebp - 0x78]
mov word [ebp - 0x38], dx
mov eax, dword [ebp - 0x54]
add eax, 0x80e1ec73
mov byte [str.OrOutput_of_signing], al
movsx ecx, word [0x1006712c]
movzx edx, byte [ebp - 0x15]
mov eax, edx
imul eax, dword [0x10067128]
xor eax, ecx
cdq
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], edx
jmp case.default.0x1003a81d
xor eax, eax
mov dword [0x10067148], 0xe146ef37
mov dword [0x1006714c], eax
mov cx, word [0x10067c3c]
mov word [ebp - 0x34], cx
jmp case.default.0x1003a81d
movsx eax, byte [ebp - 0x12]
cdq
push 0x514f5
push 0x7f72d1d0
push edx
push eax
call fcn.100409b0
mov ecx, eax
mov eax, dword [ebp - 0x48]
cdq
add eax, ecx
mov dword [ebp - 0x48], eax
mov eax, dword [0x10067118]
sub eax, 0x7e
cdq
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
movzx edx, word [ebp - 0x1c]
movsx eax, byte [0x10067027]
sub eax, edx
movsx ecx, byte [0x10067027]
sub ecx, eax
mov byte [0x10067027], cl
jmp case.default.0x1003a81d
mov dword [ebp - 0x48], 0x30ea5a1a
movsx edx, word [ebp - 0x38]
sub edx, 0x3bb7
mov eax, dword [0x10067134]
add eax, edx
mov dword [0x10067134], eax
mov ecx, 0x59ec
mov word [ebp - 0x34], cx
xor edx, edx
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
xor eax, dword [str.Y__W1_]
xor ecx, edx
mov edx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x70]
add edx, eax
adc esi, ecx
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x70], esi
jmp case.default.0x1003a81d
movsx eax, word [ebp - 0x30]
cdq
mov ecx, 8
imul ecx, ecx, 0x22d3
mov dword [ecx + 0x10116998], eax
mov dword [ecx + 0x1011699c], edx
mov eax, dword [ebp - 0x48]
cdq
push edx
push eax
mov edx, dword [0x100671a4]
push edx
mov eax, dword [0x100671a0]
push eax
call fcn.100409b0
mov ecx, dword [0x100671a0]
sub ecx, eax
mov eax, dword [0x100671a4]
sbb eax, edx
mov dword [0x100671a0], ecx
mov dword [0x100671a4], eax
mov ecx, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
add ecx, dword [0x10067170]
adc edx, dword [0x10067174]
add ecx, dword [0x10067170]
adc edx, dword [0x10067174]
mov dword [0x10067170], ecx
mov dword [0x10067174], edx
mov ecx, dword [0x10067134]
add ecx, 0x4a4b4268
mov eax, dword [ebp - 0x48]
cdq
add eax, ecx
mov dword [ebp - 0x48], eax
movsx eax, byte [ebp - 0x13]
cdq
mov ecx, dword [0x100671a8]
mov esi, dword [0x100671ac]
push edx
push eax
push esi
push ecx
call fcn.100409b0
mov ecx, dword [0x100671a8]
mov esi, dword [0x100671ac]
add ecx, eax
adc esi, edx
mov dword [0x100671a8], ecx
mov dword [0x100671ac], esi
mov edx, dword [ebp - 0x260]
sub edx, dword [ebp - 0x260]
mov eax, dword [ebp - 0x8c]
add eax, dword [ebp - 0x8c]
imul eax, edx
imul ecx, dword [ebp - 0x518], 0x2f1
mov edx, dword [ebp - 0x8c]
imul edx, dword [ebp - 0x8c]
xor edx, ecx
imul edx, eax
mov eax, dword [ebp - 0x51c]
add eax, dword [ebp - 0x520]
xor eax, 0x356
add eax, edx
mov dword [ebp - 0x524], eax
mov ecx, 8
mov word [0x1006712c], cx
movsx edx, byte [ebp - 0x14]
add edx, dword [0x1006719c]
movsx eax, byte [ebp - 0x14]
sub eax, edx
mov byte [ebp - 0x14], al
mov ecx, 4
imul edx, ecx, 0x56
mov eax, dword [ebp - 0x48]
mov dword [edx + 0x10138270], eax
xor ecx, ecx
mov dword [0x10067160], 4
mov dword [0x10067164], ecx
call fcn.10022070
test eax, eax
je 0x1003ca49
movzx edx, word [ebp - 0x1c]
movzx eax, byte [str.OrOutput_of_signing]
or eax, edx
je 0x1003ac1c
mov dword [ebp - 4], 0x14
movsx ecx, byte [ebp - 0x14]
test ecx, ecx
je 0x1003ab7c
cmp dword [ebp - 0x44], 0
je 0x1003ab32
imul edx, dword [ebp - 0x48], 0xb831
mov byte [ebp - 0x14], dl
movsx eax, word [ebp - 0x2c]
add eax, 0x56
movsx ecx, byte [0x10067027]
and ecx, eax
mov byte [0x10067027], cl
mov ecx, dword [ebp - 0x50]
sub ecx, 0x5f114976
movsx eax, byte [ebp - 0x11]
cdq
and eax, ecx
mov byte [ebp - 0x11], al
movsx edx, byte [0x10067027]
mov eax, 4
imul ecx, eax, 0x86
mov dword [ecx + 0x100b5ef0], edx
jmp 0x1003ab7a
cmp dword [0x10067168], 0
jne 0x1003ab7a
mov edx, dword [ebp - 0x44]
xor eax, eax
mov ecx, dword [0x10067184]
push ecx
mov ecx, dword [0x10067180]
push ecx
push eax
push edx
call fcn.100409b0
mov edx, dword [ebp - 0x44]
xor edx, eax
mov dword [ebp - 0x44], edx
mov eax, dword [ebp - 0x50]
sub eax, 0xb2
mov ecx, dword [ebp - 0x4c]
sbb ecx, 0
mov dword [0x10067158], eax
mov dword [0x1006715c], ecx
mov byte [ebp - 0x13], 0x56
jmp 0x1003abc7
mov edx, dword [0x10067134]
xor eax, eax
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x70], eax
movzx eax, byte [0x10067063]
cdq
mov ecx, dword [ebp - 0x60]
push ecx
mov ecx, dword [ebp - 0x64]
push ecx
push edx
push eax
call fcn.100409b0
mov byte [0x10067063], al
mov edx, dword [0x1006711c]
imul edx, dword [0x1006716c]
mov dword [0x1006711c], edx
mov eax, dword [0x10067180]
sub eax, 0xc7db4dc
mov word [ebp - 0x28], ax
jmp 0x1003ac0c
mov dword [ebp - 4], 0xffffffff
jmp 0x1003ac1c
push 0x7b
push 0
push 0
movsx dx, byte [ebp - 0x14]
movzx eax, dx
push eax
movzx ecx, word [0x10067158]
push ecx
call fcn.100347a0
mov word [ebp - 0x20], ax
movzx edx, word [ebp - 0x20]
test edx, edx
je 0x1003acbd
mov dword [ebp - 0xc4], 0x2c9
jmp 0x1003ac5f
mov eax, dword [ebp - 0xc4]
sub eax, 1
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0
jle 0x1003acbb
mov cl, byte [ebp - 0x12]
add cl, 1
mov byte [ebp - 0x12], cl
movsx eax, word [ebp - 0x30]
cdq
mov dword [0x10067138], eax
mov dword [0x1006713c], edx
movsx edx, word [ebp - 0x30]
mov eax, dword [0x10067134]
add eax, edx
mov ecx, dword [0x10067134]
sub ecx, eax
mov dword [0x10067134], ecx
mov edx, dword [0x10067128]
sub edx, 1
mov dword [0x10067128], edx
mov ax, word [0x10067144]
add ax, 1
mov word [0x10067144], ax
jmp 0x1003ac50
jmp 0x1003acee
mov ecx, dword [0x10067138]
add ecx, 0x7f40bcdf
mov dword [ebp - 0x48], ecx
mov edx, dword [0x10067134]
add edx, dword [0x100671a0]
mov dword [0x10067134], edx
mov eax, dword [ebp - 0x5c]
mov edx, dword [ebp - 0x58]
mov cl, 8
call fcn.100409f0
mov byte [ebp - 0x14], al
mov eax, dword [0x10067c3c]
mov dword [ebp - 0xec], eax
movzx ecx, byte [ebp - 0x15]
movsx edx, byte [ebp - 0x11]
cmp edx, ecx
jge 0x1003ad11
mov dword [ebp - 0x264], 1
jmp 0x1003ad1b
mov dword [ebp - 0x264], 0
movsx eax, byte [ebp - 0x11]
cmp eax, 0x30
jge 0x1003ad30
mov dword [ebp - 0x268], 1
jmp 0x1003ad3a
mov dword [ebp - 0x268], 0
mov ecx, dword [ebp - 0x264]
cmp ecx, dword [ebp - 0x268]
jge 0x1003ae41
mov eax, dword [ebp - 0x48]
cdq
mov ecx, dword [0x10067178]
mov esi, dword [0x1006717c]
mov dword [ebp - 0x6ec], ecx
mov dword [ebp - 0x6e8], esi
mov dword [ebp - 0x6f4], eax
mov dword [ebp - 0x6f0], edx
mov edx, dword [ebp - 0x6e8]
cmp edx, dword [ebp - 0x6f0]
ja 0x1003ad9e
jb 0x1003ad92
mov eax, dword [ebp - 0x6ec]
cmp eax, dword [ebp - 0x6f4]
ja 0x1003ad9e
mov dword [ebp - 0x26c], 1
jmp 0x1003ada8
mov dword [ebp - 0x26c], 0
mov ecx, dword [0x10067178]
mov edx, dword [0x1006717c]
mov dword [ebp - 0x6fc], ecx
mov dword [ebp - 0x6f8], edx
cmp dword [ebp - 0x6f8], 0
ja 0x1003ade0
jb 0x1003add4
cmp dword [ebp - 0x6fc], 3
ja 0x1003ade0
mov dword [ebp - 0x270], 1
jmp 0x1003adea
mov dword [ebp - 0x270], 0
mov eax, dword [ebp - 0x26c]
cmp eax, dword [ebp - 0x270]
jne 0x1003ae3c
mov dword [0x10067140], 2
movsx eax, word [0x10067198]
cdq
mov ecx, dword [0x10067138]
sub ecx, eax
mov eax, dword [0x1006713c]
sbb eax, edx
mov edx, dword [0x10067138]
sub edx, ecx
mov ecx, dword [0x1006713c]
sbb ecx, eax
mov dword [0x10067138], edx
mov dword [0x1006713c], ecx
mov byte [0x10067026], 0xe5
jmp 0x1003af49
mov edx, dword [0x10067138]
or edx, dword [0x1006713c]
je 0x1003af49
movzx ecx, word [0x10067154]
add ecx, 0x11
mov eax, dword [0x10067168]
shl eax, cl
mov dword [0x10067168], eax
movsx eax, word [ebp - 0x30]
cdq
mov ecx, eax
mov esi, edx
movsx eax, byte [ebp - 0x13]
not eax
cdq
add eax, dword [0x10067160]
adc edx, dword [0x10067164]
push esi
push ecx
push edx
push eax
call fcn.100409b0
mov dword [ebp - 0x704], eax
mov dword [ebp - 0x700], edx
mov edx, dword [ebp - 0x704]
or edx, dword [ebp - 0x700]
jne 0x1003aeb6
mov eax, 1
mov word [ebp - 0x82], ax
jmp 0x1003aebf
xor ecx, ecx
mov word [ebp - 0x82], cx
mov dx, word [ebp - 0x82]
mov word [ebp - 0x28], dx
movzx eax, byte [ebp - 0x15]
test eax, eax
jne 0x1003aee6
xor ecx, ecx
mov dword [ebp - 0x438], 1
mov dword [ebp - 0x434], ecx
jmp 0x1003aef1
xorps xmm0, xmm0
movlpd qword [ebp - 0x438], xmm0
mov edx, dword [ebp - 0x434]
push edx
mov eax, dword [ebp - 0x438]
push eax
mov ecx, dword [ebp - 0x4c]
push ecx
mov edx, dword [ebp - 0x50]
push edx
call fcn.100409b0
mov ecx, eax
mov esi, edx
movsx eax, byte [ebp - 0x11]
not eax
cdq
mov edi, dword [0x10067158]
sub edi, eax
mov eax, dword [0x1006715c]
sbb eax, edx
add edi, ecx
adc eax, esi
mov dword [0x10067180], edi
mov dword [0x10067184], eax
movzx ecx, byte [0x1006706f]
imul edx, ecx, 0x4ba2
mov word [0x10067198], dx
mov eax, dword [ebp - 0xec]
add eax, 0x17d
mov dword [ebp - 0x290], eax
mov dword [ebp - 0xc8], 0x215
movzx ecx, word [ebp - 0x20]
movzx edx, word [ebp - 0x24]
imul edx, ecx
movzx eax, word [ebp - 0x24]
add eax, edx
mov word [ebp - 0x24], ax
movsx ecx, word [ebp - 0x34]
movzx edx, word [ebp - 0x28]
imul edx, ecx
mov word [ebp - 0x28], dx
mov eax, dword [ebp - 0x48]
not eax
movsx ecx, word [ebp - 0x2c]
add ecx, dword [0x10067194]
xor ecx, eax
jne 0x1003afaf
xor edx, edx
mov dword [ebp - 0x440], 1
mov dword [ebp - 0x43c], edx
jmp 0x1003afba
xorps xmm0, xmm0
movlpd qword [ebp - 0x440], xmm0
mov eax, dword [0x1006716c]
xor ecx, ecx
push ecx
push eax
mov edx, dword [ebp - 0x60]
push edx
mov eax, dword [ebp - 0x64]
push eax
call fcn.100409b0
mov ecx, eax
mov esi, edx
movzx eax, byte [0x1006704f]
cdq
xor eax, ecx
xor edx, esi
add eax, dword [ebp - 0x440]
adc edx, dword [ebp - 0x43c]
mov dword [0x100671a0], eax
mov dword [0x100671a4], edx
cmp dword [ebp - 0xc8], 0xc5
jle 0x1003b1a3
movzx edx, word [ebp - 0x20]
test edx, edx
je 0x1003b0ae
push 0
push 0x96
push 0
call fcn.100327b0
mov byte [ebp - 0x13], al
movsx eax, byte [ebp - 0x13]
test eax, eax
jne 0x1003b038
mov dword [ebp - 0x274], 1
jmp 0x1003b042
mov dword [ebp - 0x274], 0
movsx ecx, byte [ebp - 0x13]
cmp ecx, 0x3e
jne 0x1003b057
mov dword [ebp - 0x278], 1
jmp 0x1003b061
mov dword [ebp - 0x278], 0
mov edx, dword [ebp - 0x274]
cmp edx, dword [ebp - 0x278]
jg 0x1003b0a9
mov al, byte [ebp - 0x64]
mov byte [ebp - 0x13], al
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x8c8], edx
add ecx, 0x5dd4
mov dword [0x1006711c], ecx
mov eax, dword [0x10067170]
add eax, 0x408a499d
mov word [0x1006712c], ax
xor ecx, ecx
mov dword [ebp - 0x74], 8
mov dword [ebp - 0x70], ecx
jmp 0x1003b18f
mov edx, dword [ebp - 0x64]
or edx, dword [ebp - 0x60]
jne 0x1003b103
movsx eax, word [0x10067198]
cdq
sub eax, dword [ebp - 0x50]
mov dword [0x10067194], eax
movzx eax, word [ebp - 0x20]
sar eax, 5
cdq
mov dword [0x10067158], eax
mov dword [0x1006715c], edx
movzx eax, word [0x10067190]
movsx ecx, word [ebp - 0x38]
add ecx, eax
movsx edx, word [ebp - 0x38]
add edx, ecx
mov word [ebp - 0x38], dx
mov eax, dword [0x10067188]
sub eax, 0x54069707
mov word [ebp - 0x20], ax
jmp 0x1003b18f
mov ecx, 0x2bf3e7de
or ecx, 0xd3ba4
je 0x1003b15c
mov edx, dword [0x10067134]
xor edx, 0xc162
xor eax, eax
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
push 0
push 0xcf
push edx
push ecx
call fcn.100409b0
mov dword [ebp - 0x48], eax
movsx eax, byte [ebp - 0x13]
cdq
mov ecx, dword [0x10067158]
sub ecx, eax
mov eax, dword [0x1006715c]
sbb eax, edx
mov dword [0x10067158], ecx
mov dword [0x1006715c], eax
jmp 0x1003b18f
movzx ecx, word [ebp - 0x28]
test ecx, ecx
je 0x1003b18f
movsx edx, byte [ebp - 0x12]
sub edx, 0x5d87a228
mov dword [str.Y__W1_], edx
movsx eax, word [0x10067198]
cdq
add eax, dword [ebp - 0x6c]
mov word [0x10067198], ax
movzx eax, word [ebp - 0x28]
sar eax, 6
mov byte [ebp - 0x14], al
mov ecx, dword [ebp - 0xc8]
sub ecx, 1
mov dword [ebp - 0xc8], ecx
jmp 0x1003aff7
mov edx, dword [ebp - 0xec]
add edx, 0x81
mov dword [ebp - 0xd0], edx
movzx eax, word [0x10067144]
movzx ecx, word [0x10067154]
imul ecx, eax
movzx edx, word [0x10067154]
imul edx, ecx
mov word [0x10067154], dx
mov eax, dword [ebp - 0x6c]
sub eax, 0xf4c5f664
mov word [ebp - 0x20], ax
movzx ecx, byte [0x1006704f]
test ecx, ecx
jne 0x1003b202
xor edx, edx
mov dword [ebp - 0x448], 1
mov dword [ebp - 0x444], edx
jmp 0x1003b20d
xorps xmm0, xmm0
movlpd qword [ebp - 0x448], xmm0
mov ecx, dword [ebp - 0x74]
mov esi, dword [ebp - 0x70]
add ecx, dword [ebp - 0x448]
adc esi, dword [ebp - 0x444]
movzx eax, byte [ebp - 0x15]
cdq
add eax, ecx
adc edx, esi
mov ecx, dword [0x1006716c]
not ecx
add ecx, dword [0x10067168]
not ecx
xor esi, esi
sub ecx, dword [ebp - 0x50]
sbb esi, dword [ebp - 0x4c]
sub ecx, eax
sbb esi, edx
not ecx
not esi
mov dword [0x10067148], ecx
mov dword [0x1006714c], esi
mov edx, dword [0x10067188]
sub edx, 0x37
mov byte [ebp - 0x12], dl
mov eax, dword [ebp - 0x524]
add eax, dword [ebp - 0xec]
mov dword [ebp - 0x528], eax
push 0xd5
push 0x5c
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x8cc], edx
movzx eax, cl
push eax
call fcn.100314c0
movzx eax, al
cdq
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
mov ecx, dword [ebp - 0x64]
or ecx, dword [ebp - 0x60]
jne 0x1003b2ac
mov dword [ebp - 0x27c], 1
jmp 0x1003b2b6
mov dword [ebp - 0x27c], 0
cmp dword [ebp - 0x64], 0x14
jne 0x1003b2ce
cmp dword [ebp - 0x60], 0
jne 0x1003b2ce
mov dword [ebp - 0x280], 1
jmp 0x1003b2d8
mov dword [ebp - 0x280], 0
mov edx, dword [ebp - 0x27c]
cmp edx, dword [ebp - 0x280]
jg 0x1003b3b6
movsx eax, word [0x1006712c]
test eax, eax
je 0x1003b33e
cmp dword [0x1006719c], 0
jne 0x1003b30a
mov dword [ebp - 0x284], 1
jmp 0x1003b314
mov dword [ebp - 0x284], 0
mov ecx, dword [ebp - 0x284]
mov dword [ebp - 0x54], ecx
movzx eax, word [ebp - 0x20]
cdq
mov ecx, dword [0x10067158]
sub ecx, eax
mov eax, dword [0x1006715c]
sbb eax, edx
mov dword [0x10067158], ecx
mov dword [0x1006715c], eax
jmp 0x1003b3b1
movsx ecx, word [0x1006712c]
not ecx
mov edx, dword [0x10067150]
not edx
cmp edx, ecx
jle 0x1003b3b1
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
sub eax, 0x72d0
sbb ecx, 0
mov dword [0x100671a8], eax
mov dword [0x100671ac], ecx
mov edx, dword [ebp - 0x50]
add edx, 0xab
mov eax, dword [ebp - 0x4c]
adc eax, 0
push eax
push edx
mov ecx, dword [0x10067174]
push ecx
mov edx, dword [0x10067170]
push edx
call fcn.100409b0
mov dword [0x10067170], eax
mov dword [0x10067174], edx
xor eax, eax
mov ecx, dword [ebp - 0x64]
sub ecx, dword [str.Y__W1_]
mov edx, dword [ebp - 0x60]
sbb edx, eax
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], edx
jmp 0x1003b501
movsx eax, word [ebp - 0x2c]
movzx ecx, word [0x10067144]
cmp ecx, eax
je 0x1003b3d1
mov dword [ebp - 0x288], 1
jmp 0x1003b3db
mov dword [ebp - 0x288], 0
mov edx, dword [0x1006711c]
cmp dword [ebp - 0x288], edx
ja 0x1003b434
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
push 0x4bd1f
push 0x1646869c
push ecx
push eax
call fcn.100409b0
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
add ecx, eax
adc esi, edx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], esi
movsx edx, word [ebp - 0x38]
sub edx, 0x3f
mov byte [0x10067063], dl
mov eax, 8
mov word [ebp - 0x20], ax
mov ecx, 0xc8
mov word [ebp - 0x38], cx
jmp 0x1003b501
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x70c], edx
mov dword [ebp - 0x708], eax
mov ecx, dword [ebp - 0x70c]
or ecx, dword [ebp - 0x708]
je 0x1003b4ab
mov edx, dword [0x10067c3c]
xor eax, eax
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], eax
mov ecx, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
mov dword [ebp - 0x8d0], edx
movzx eax, word [0x10067144]
cdq
add eax, ecx
mov word [0x10067144], ax
movsx eax, byte [ebp - 0x12]
movzx ecx, word [ebp - 0x28]
sub ecx, eax
mov word [ebp - 0x28], cx
mov edx, dword [0x10067134]
mov eax, 4
imul ecx, eax, 0xca
add edx, dword [ecx + 0x100e69a8]
mov dword [0x10067134], edx
jmp 0x1003b501
cmp dword [0x10067118], 0xe23bde2
jl 0x1003b4c3
mov dword [ebp - 0x28c], 1
jmp 0x1003b4cd
mov dword [ebp - 0x28c], 0
mov edx, dword [ebp - 0x28c]
not edx
test edx, edx
jge 0x1003b501
movsx eax, word [ebp - 0x38]
sub eax, 0x6b11
mov dword [0x1006719c], eax
mov eax, dword [0x1006719c]
cdq
mov ecx, dword [ebp - 0x6c]
sub ecx, eax
mov eax, dword [ebp - 0x68]
sbb eax, edx
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x68], eax
mov byte [ebp - 0x15], 0x7d
mov ecx, dword [ebp - 0x290]
add ecx, dword [ebp - 0xd0]
mov edx, dword [ebp - 0x528]
and edx, 0xc3
add edx, ecx
mov eax, dword [ebp - 0x290]
sub eax, dword [ebp - 0xd0]
imul ecx, dword [ebp - 0xd0], 0x1a7
sub ecx, eax
cmp ecx, edx
je 0x1003ca44
mov edx, dword [0x10067134]
cmp edx, dword [str.Y__W1_]
ja 0x1003b6d0
mov dword [ebp - 4], 0x16
mov dword [ebp - 0xd4], 0x38d
jmp 0x1003b56f
cmp dword [ebp - 0xd4], 0
jle 0x1003b661
mov ecx, dword [0x10067c3c]
mov dword [ebp - 0x48], ecx
movzx edx, word [0x10067154]
movzx eax, word [ebp - 0x1c]
not eax
sub eax, edx
jne 0x1003b5aa
xor ecx, ecx
mov dword [ebp - 0x450], 1
mov dword [ebp - 0x44c], ecx
jmp 0x1003b5b5
xorps xmm0, xmm0
movlpd qword [ebp - 0x450], xmm0
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
and ecx, dword [0x100671a8]
and esi, dword [0x100671ac]
movzx eax, byte [str.OrOutput_of_signing]
cdq
mov edi, eax
mov ebx, edx
sub edi, ecx
sbb ebx, esi
mov ecx, dword [0x10067138]
not ecx
mov esi, dword [0x1006713c]
not esi
mov eax, dword [ebp - 0x48]
cdq
or eax, ecx
or edx, esi
add eax, dword [ebp - 0x450]
adc edx, dword [ebp - 0x44c]
push ebx
push edi
push edx
push eax
call fcn.100409b0
mov dword [ebp - 0x714], eax
mov dword [ebp - 0x710], edx
mov edx, dword [ebp - 0x714]
or edx, dword [ebp - 0x710]
jne 0x1003b62a
jmp 0x1003b6c0
mov dword [ebp - 4], 0xffffffff
jmp 0x1003b6d0
mov edx, 0xffffef51
mov word [ebp - 0x2c], dx
movsx eax, word [ebp - 0x34]
cdq
mov ecx, eax
mov esi, edx
sub ecx, dword [0x10067138]
sbb esi, dword [0x1006713c]
not ecx
not esi
mov eax, dword [0x10067128]
sub eax, dword [0x10067150]
cdq
push esi
push ecx
push edx
push eax
call fcn.100409b0
mov dword [ebp - 0x44], eax
call fcn.10012ca0
test eax, eax
jne 0x1003ca44
movsx edx, byte [ebp - 0x13]
movsx eax, byte [ebp - 0x13]
cmp eax, edx
jle 0x1003b72f
mov dword [ebp - 0x298], 1
jmp 0x1003b739
mov dword [ebp - 0x298], 0
movsx ecx, byte [ebp - 0x13]
cmp ecx, 0x62
jle 0x1003b74e
mov dword [ebp - 0x29c], 1
jmp 0x1003b758
mov dword [ebp - 0x29c], 0
mov edx, dword [ebp - 0x298]
cmp edx, dword [ebp - 0x29c]
jle 0x1003bd1c
jmp 0x1003ea10
imul eax, dword [0x1006711c], 0x9dd16482
xor ecx, ecx
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], ecx
mov edx, dword [ebp - 0x50]
add edx, 0x7b5dd9be
mov eax, dword [ebp - 0x4c]
adc eax, 0xedebc
mov ecx, dword [0x100671a0]
sub ecx, edx
mov edx, dword [0x100671a4]
sbb edx, eax
mov dword [0x100671a0], ecx
mov dword [0x100671a4], edx
mov eax, dword [0x10067118]
cdq
push 0xea0ca
push 0x6af00327
push edx
push eax
call fcn.100409b0
mov dword [0x10067148], eax
mov dword [0x1006714c], edx
mov eax, dword [ebp - 0x44]
mov dword [0x10067150], eax
movzx ecx, byte [ebp - 0x15]
cmp dword [0x1006716c], ecx
ja 0x1003caca
mov dword [ebp - 0x2f0], 1
jmp 0x1003cad4
mov dword [ebp - 0x2f0], 0
cmp dword [0x1006716c], 0x40
ja 0x1003cae9
mov dword [ebp - 0x2f4], 1
jmp 0x1003caf3
mov dword [ebp - 0x2f4], 0
mov edx, dword [ebp - 0x2f0]
cmp edx, dword [ebp - 0x2f4]
jne 0x1003cbde
movsx eax, word [ebp - 0x34]
cdq
mov ecx, dword [0x10067120]
mov esi, dword [0x10067124]
push edx
push eax
push esi
push ecx
call fcn.100409b0
mov dword [0x10067120], eax
mov dword [0x10067124], edx
mov edx, dword [0x10067c3c]
xor eax, eax
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x60], eax
cmp dword [0x10067194], 0
jne 0x1003cb4d
mov dword [ebp - 0x2f8], 1
jmp 0x1003cb57
mov dword [ebp - 0x2f8], 0
mov ecx, dword [ebp - 0x48]
not ecx
movzx eax, word [ebp - 0x28]
imul eax, ecx
imul eax, dword [ebp - 0x2f8]
cdq
mov esi, eax
mov edi, edx
movzx eax, byte [ebp - 0x15]
cdq
mov ecx, dword [ebp - 0x6c]
sub ecx, eax
mov ebx, dword [ebp - 0x68]
sbb ebx, edx
movzx edx, word [ebp - 0x1c]
movzx eax, word [ebp - 0x24]
add eax, edx
cdq
push ebx
push ecx
push edx
push eax
call fcn.100409b0
push edi
push esi
push edx
push eax
call fcn.100409b0
mov byte [ebp - 0x15], al
movzx eax, word [ebp - 0x1c]
test eax, eax
je 0x1003cbc0
mov ecx, dword [0x100671a0]
mov edx, dword [0x100671a4]
mov dword [ebp - 0x4a0], ecx
mov dword [ebp - 0x49c], edx
jmp 0x1003cbd1
movsx eax, word [ebp - 0x34]
cdq
mov dword [ebp - 0x4a0], eax
mov dword [ebp - 0x49c], edx
mov ax, word [ebp - 0x4a0]
mov word [ebp - 0x24], ax
jmp 0x1003cc38
mov ecx, 2
imul edx, ecx, 0x15
movsx eax, word [edx + 0x100a2178]
mov dword [0x1006716c], eax
movsx ecx, byte [ebp - 0x11]
test ecx, ecx
jne 0x1003cc06
mov dword [ebp - 0x2fc], 1
jmp 0x1003cc10
mov dword [ebp - 0x2fc], 0
movsx edx, byte [0x10067027]
add edx, dword [ebp - 0x2fc]
mov word [0x1006712c], dx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
add eax, 0x147d238f
adc ecx, 0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], ecx
mov edx, dword [0x10067c3c]
mov dword [ebp - 0xe8], edx
mov eax, dword [ebp - 0xe8]
add eax, 0x153
mov dword [ebp - 0xf0], eax
mov ecx, dword [0x10067120]
mov esi, dword [0x10067124]
movsx eax, word [ebp - 0x38]
cdq
mov dword [ebp - 0x7a4], eax
mov dword [ebp - 0x7a0], edx
mov dword [ebp - 0x7ac], ecx
mov dword [ebp - 0x7a8], esi
mov edx, dword [ebp - 0x7a0]
cmp edx, dword [ebp - 0x7a8]
jg 0x1003cca8
jl 0x1003cc9c
mov eax, dword [ebp - 0x7a4]
cmp eax, dword [ebp - 0x7ac]
jae 0x1003cca8
mov dword [ebp - 0x300], 1
jmp 0x1003ccb2
mov dword [ebp - 0x300], 0
movsx ecx, word [ebp - 0x38]
cmp ecx, 0x39
jge 0x1003ccc7
mov dword [ebp - 0x304], 1
jmp 0x1003ccd1
mov dword [ebp - 0x304], 0
mov edx, dword [ebp - 0x300]
cmp edx, dword [ebp - 0x304]
jl 0x1003ce3d
movsx eax, word [0x10067198]
cdq
mov ecx, dword [0x10067148]
mov esi, dword [0x1006714c]
mov dword [ebp - 0x7b4], ecx
mov dword [ebp - 0x7b0], esi
mov dword [ebp - 0x7bc], eax
mov dword [ebp - 0x7b8], edx
mov edx, dword [ebp - 0x7b4]
cmp edx, dword [ebp - 0x7bc]
jne 0x1003cd2f
mov eax, dword [ebp - 0x7b0]
cmp eax, dword [ebp - 0x7b8]
je 0x1003ce38
mov dword [ebp - 0xe4], 0
jmp 0x1003cd4a
mov ecx, dword [ebp - 0xe4]
add ecx, 1
mov dword [ebp - 0xe4], ecx
cmp dword [ebp - 0xe4], 0x24f
jge 0x1003ce38
mov dword [ebp - 4], 0x18
movsx eax, byte [ebp - 0x12]
not eax
cdq
mov ecx, eax
movsx eax, byte [ebp - 0x13]
cdq
add eax, dword [0x10067158]
mov edx, dword [0x10067194]
add edx, eax
not edx
sub edx, ecx
mov byte [ebp - 0x15], dl
movzx eax, word [ebp - 0x1c]
movzx ecx, byte [str.OrOutput_of_signing]
imul ecx, eax
mov byte [str.OrOutput_of_signing], cl
cmp dword [0x10067140], 0
je 0x1003cdb0
movzx edx, word [0x10067190]
mov dword [ebp - 0x308], edx
jmp 0x1003cdbb
mov eax, dword [0x10067150]
mov dword [ebp - 0x308], eax
mov ecx, dword [ebp - 0x308]
mov dword [ebp - 0x48], ecx
jmp 0x1003ce07
mov dword [ebp - 4], 0xffffffff
jmp 0x1003ce17
mov eax, dword [0x10067178]
mov ecx, dword [0x1006717c]
add eax, 1
adc ecx, 0
mov dword [0x10067178], eax
mov dword [0x1006717c], ecx
jmp 0x1003cd3b
jmp 0x1003ced1
mov edx, dword [0x10067c3c]
mov dword [0x10067150], edx
movzx eax, word [0x10067190]
movzx ecx, word [ebp - 0x20]
sub ecx, eax
mov eax, ecx
cdq
mov esi, eax
mov edi, edx
xor esi, dword [ebp - 0x6c]
xor edi, dword [ebp - 0x68]
movzx edx, word [ebp - 0x24]
movzx eax, byte [0x1006704f]
add eax, edx
cdq
mov ecx, dword [str.Y__W1_]
xor ebx, ebx
xor ecx, 0xc86af217
xor ebx, 0x80848
push edx
push eax
push ebx
push ecx
call fcn.100409b0
sub eax, esi
sbb edx, edi
mov dword [ebp - 0x7c4], eax
mov dword [ebp - 0x7c0], edx
mov edx, dword [ebp - 0x7c4]
or edx, dword [ebp - 0x7c0]
jne 0x1003ceb7
mov eax, 1
mov word [ebp - 0x7c], ax
jmp 0x1003cebd
xor ecx, ecx
mov word [ebp - 0x7c], cx
mov dx, word [ebp - 0x7c]
mov word [ebp - 0x2c], dx
mov eax, dword [0x1006719c]
xor eax, 0x60
mov word [ebp - 0x1c], ax
mov ecx, dword [ebp - 0xe8]
add ecx, 0x1b6
mov dword [ebp - 0x8f8], ecx
push 0
push 0
push 0
push 0x98
push 0
push 0xe6
mov edx, dword [0x100671ac]
push edx
mov eax, dword [0x100671a8]
push eax
call fcn.10034110
mov byte [0x10067027], al
movsx ecx, byte [0x10067027]
test ecx, ecx
jg 0x1003cf19
jmp 0x1003cf89
cmp dword [0x10067194], 0
jne 0x1003cf2f
movsx edx, byte [0x10067026]
not edx
test edx, edx
je 0x1003cf89
movsx eax, word [0x1006712c]
sub eax, dword [0x1006716c]
mov word [0x1006712c], ax
mov eax, dword [0x1006719c]
cdq
add eax, 0x16b39635
adc edx, 0xd34ab
push edx
push eax
mov ecx, dword [0x1006718c]
push ecx
mov edx, dword [0x10067188]
push edx
call fcn.100409b0
mov dword [0x10067188], eax
mov dword [0x1006718c], edx
mov eax, dword [0x100671a8]
mov ecx, dword [0x100671ac]
mov dword [0x10067160], eax
mov dword [0x10067164], ecx
mov edx, dword [ebp - 0xe8]
add edx, 0x28d
mov dword [ebp - 0x310], edx
push 0
push 0x18
push 0
push 0
push 0
push 0
push 0
push 0xd0
push 0
push 0xee
call fcn.100354c0
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x3c]
mov dword [ebp - 0x7cc], eax
mov dword [ebp - 0x7c8], ecx
mov edx, dword [ebp - 0x7cc]
or edx, dword [ebp - 0x7c8]
je 0x1003d0aa
movzx eax, word [ebp - 0x28]
cdq
add eax, 0x8d1a23d1
mov word [0x10067190], ax
mov eax, dword [0x100671a0]
not eax
mov ecx, dword [0x100671a4]
not ecx
mov edx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x3c]
and edx, dword [ebp - 0x74]
and esi, dword [ebp - 0x70]
and edx, eax
and esi, ecx
mov dword [ebp - 0x7d4], edx
mov dword [ebp - 0x7d0], esi
mov eax, dword [ebp - 0x7d4]
or eax, dword [ebp - 0x7d0]
jne 0x1003d041
xor ecx, ecx
mov dword [ebp - 0x4a8], 1
mov dword [ebp - 0x4a4], ecx
jmp 0x1003d04c
xorps xmm0, xmm0
movlpd qword [ebp - 0x4a8], xmm0
mov edx, dword [ebp - 0x4a8]
mov eax, dword [ebp - 0x4a4]
mov dword [0x10067138], edx
mov dword [0x1006713c], eax
mov ecx, 4
shl ecx, 0
mov dl, byte [ecx + 0x10138270]
mov byte [ebp - 0x12], dl
movzx eax, byte [str.OrOutput_of_signing]
test eax, eax
je 0x1003d08a
mov ecx, dword [ebp - 0x54]
mov dword [ebp - 0x30c], ecx
jmp 0x1003d097
movsx edx, byte [0x10067026]
mov dword [ebp - 0x30c], edx
mov eax, dword [ebp - 0x30c]
xor ecx, ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ecx
jmp 0x1003d14e
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
mov dword [ebp - 0x7dc], ecx
mov dword [ebp - 0x7d8], esi
mov dword [ebp - 0x7e4], edx
mov dword [ebp - 0x7e0], eax
mov edx, dword [ebp - 0x7d8]
cmp edx, dword [ebp - 0x7e0]
jb 0x1003d100
ja 0x1003d0ec
mov eax, dword [ebp - 0x7dc]
cmp eax, dword [ebp - 0x7e4]
jb 0x1003d100
xor ecx, ecx
mov dword [ebp - 0x4b0], 1
mov dword [ebp - 0x4ac], ecx
jmp 0x1003d10b
xorps xmm0, xmm0
movlpd qword [ebp - 0x4b0], xmm0
mov edx, dword [ebp - 0x4c]
cmp edx, dword [ebp - 0x4ac]
jg 0x1003d14e
jl 0x1003d123
mov eax, dword [ebp - 0x50]
cmp eax, dword [ebp - 0x4b0]
ja 0x1003d14e
mov byte [0x10067063], 0x5f
movzx ecx, word [ebp - 0x1c]
add ecx, 0x9027
mov dword [0x10067128], ecx
movzx edx, word [ebp - 0x28]
add edx, dword [0x1006719c]
movzx eax, word [ebp - 0x28]
add eax, edx
mov word [ebp - 0x28], ax
mov ecx, dword [ebp - 0x310]
add ecx, 0x13b
mov edx, dword [ebp - 0x310]
or edx, dword [ebp - 0xf0]
xor edx, ecx
imul eax, dword [ebp - 0xf0], 0x125
mov ecx, dword [ebp - 0xf0]
add ecx, eax
cmp ecx, edx
je 0x1003ea10
movsx eax, word [ebp - 0x30]
cdq
sub eax, dword [0x10067180]
mov word [ebp - 0x30], ax
movsx edx, byte [ebp - 0x11]
imul eax, edx, 0xc3
cdq
mov dword [0x10067188], eax
mov dword [0x1006718c], edx
mov eax, dword [0x1006711c]
add eax, 0x7d503ec1
mov byte [0x10067027], al
mov dword [ebp - 4], 0x1a
mov ecx, dword [ebp - 0x3c]
push ecx
mov edx, dword [ebp - 0x40]
push edx
push 0
push 0x99
call fcn.10031830
mov dword [ebp - 0x874], eax
mov dword [ebp - 0x870], edx
mov ax, word [ebp - 0x874]
mov word [ebp - 0x30], ax
movzx ecx, word [ebp - 0x1c]
test ecx, ecx
je 0x1003d285
movzx edx, word [ebp - 0x20]
test edx, edx
jne 0x1003d208
mov dword [ebp - 0x314], 1
jmp 0x1003d212
mov dword [ebp - 0x314], 0
movzx eax, word [ebp - 0x24]
not eax
imul eax, dword [ebp - 0x314]
mov word [ebp - 0x38], ax
movzx ecx, word [ebp - 0x28]
sub ecx, 0x552b670
jne 0x1003d243
xor edx, edx
mov dword [ebp - 0x7ec], 1
mov dword [ebp - 0x7e8], edx
jmp 0x1003d24e
xorps xmm0, xmm0
movlpd qword [ebp - 0x7ec], xmm0
mov eax, dword [ebp - 0x50]
add eax, dword [ebp - 0x7ec]
not eax
mov dword [0x10067194], eax
mov eax, dword [0x10067128]
cdq
mov ecx, eax
add ecx, 0x5da4f50d
movzx eax, word [ebp - 0x28]
cdq
add eax, ecx
mov word [ebp - 0x28], ax
mov dl, byte [0x10067144]
mov byte [ebp - 0x14], dl
jmp 0x1003d30e
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x7f4], eax
mov dword [ebp - 0x7f0], ecx
mov edx, dword [ebp - 0x7f4]
or edx, dword [ebp - 0x7f0]
je 0x1003d30e
mov ecx, dword [0x10067148]
mov edx, dword [0x1006714c]
mov dword [ebp - 0x8fc], edx
add ecx, 0xac10114a
mov eax, dword [0x10067140]
cdq
add eax, ecx
mov dword [0x10067140], eax
mov eax, dword [ebp - 0x54]
sub eax, 1
mov dword [ebp - 0x54], eax
je 0x1003d2e9
mov eax, dword [0x10067118]
cdq
mov dword [ebp - 0x4b8], eax
mov dword [ebp - 0x4b4], edx
jmp 0x1003d301
mov ecx, dword [0x10067178]
mov edx, dword [0x1006717c]
mov dword [ebp - 0x4b8], ecx
mov dword [ebp - 0x4b4], edx
mov ax, word [ebp - 0x4b8]
mov word [0x1006712c], ax
jmp 0x1003d3c9
mov dword [ebp - 4], 0xffffffff
jmp 0x1003d3d9
mov edx, dword [ebp - 0x538]
xor edx, 0x163
mov eax, dword [ebp - 0x318]
add eax, 0xb9
xor eax, edx
mov ecx, dword [ebp - 0x318]
sub ecx, 0x1de
mov edx, dword [ebp - 0x53c]
add edx, ecx
cmp edx, eax
je 0x1003ea10
mov eax, 4
mov word [ebp - 0x30], ax
movzx eax, word [ebp - 0x28]
cdq
mov ecx, dword [0x10067148]
mov esi, dword [0x1006714c]
xor ecx, eax
xor esi, edx
mov edx, dword [0x10067148]
mov eax, dword [0x1006714c]
sub edx, ecx
sbb eax, esi
mov dword [0x10067148], edx
mov dword [0x1006714c], eax
movzx ecx, byte [ebp - 0x15]
and ecx, 0xad6
mov byte [ebp - 0x15], cl
movsx edx, word [ebp - 0x38]
sub edx, 0x66ce
mov word [ebp - 0x34], dx
movsx eax, word [ebp - 0x30]
mov dword [ebp - 0x31c], eax
cmp dword [ebp - 0x31c], 4
ja case.default.0x1003d47e
mov ecx, dword [ebp - 0x31c]
jmp dword [ecx*4 + 0x1003ea7c]
movsx edx, byte [ebp - 0x12]
sar edx, 4
mov byte [0x10067063], dl
movzx eax, word [0x10067144]
movsx ecx, word [0x1006712c]
xor ecx, eax
mov dword [0x1006716c], ecx
movsx edx, word [ebp - 0x34]
movsx eax, byte [ebp - 0x14]
xor eax, edx
movzx ecx, word [ebp - 0x28]
not ecx
mov edx, 0xffff334c
sub edx, ecx
mov ecx, dword [ebp - 0x48]
imul ecx, dword [ebp - 0x48]
sub ecx, edx
add eax, ecx
cdq
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
jmp case.default.0x1003d47e
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 0x58]
push 0
push 0x2314
push eax
push edx
call fcn.100409b0
mov byte [ebp - 0x13], al
mov ecx, 4
mov word [ebp - 0x38], cx
xor edx, edx
mov dword [0x100671a8], 0xbc5a
mov dword [0x100671ac], edx
movsx eax, byte [0x10067027]
test eax, eax
je 0x1003d521
mov edx, dword [ebp - 0x54]
mov dword [0x10067168], edx
mov eax, dword [0x10067118]
add eax, 0x83
not eax
cdq
mov esi, eax
mov edi, edx
mov eax, dword [ebp - 0x60]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [0x100671a4]
push edx
mov eax, dword [0x100671a0]
push eax
call fcn.100409b0
sub eax, esi
sbb edx, edi
mov dword [ebp - 0x804], eax
mov dword [ebp - 0x800], edx
mov ecx, dword [ebp - 0x804]
or ecx, dword [ebp - 0x800]
jne 0x1003d5a8
movsx ecx, word [ebp - 0x2c]
mov edx, dword [ebp - 0x54]
sub edx, ecx
mov eax, dword [ebp - 0x54]
add eax, edx
mov dword [ebp - 0x54], eax
movsx ecx, word [0x10067198]
sub ecx, 0xf8
mov byte [ebp - 0x11], cl
movzx edx, byte [ebp - 0x15]
imul eax, edx, 0x99769744
xor ecx, ecx
mov dword [0x10067170], eax
mov dword [0x10067174], ecx
movsx edx, word [ebp - 0x2c]
test edx, edx
jne 0x1003d6a9
movsx eax, word [ebp - 0x30]
cdq
mov ecx, dword [ebp - 0x5c]
mov esi, dword [ebp - 0x58]
and ecx, eax
and esi, edx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x58], esi
movzx edx, word [ebp - 0x24]
add edx, dword [ebp - 0x44]
movsx eax, byte [ebp - 0x13]
add eax, 0xce
imul eax, edx
xor ecx, ecx
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp - 0x44]
xor edx, 0xc21d4033
mov dword [0x10067128], edx
movzx eax, byte [ebp - 0x14]
push eax
push 0xffffffffffffffe9
push 0
movzx ecx, byte [0x10067170]
push ecx
call fcn.10031120
movsx dx, al
mov word [ebp - 0x2c], dx
movsx eax, word [ebp - 0x2c]
test eax, eax
jl 0x1003d73f
mov dword [ebp - 0x328], 1
jmp 0x1003d749
mov dword [ebp - 0x328], 0
movsx ecx, word [ebp - 0x2c]
cmp ecx, 0x2e
jl 0x1003d75e
mov dword [ebp - 0x32c], 1
jmp 0x1003d768
mov dword [ebp - 0x32c], 0
mov edx, dword [ebp - 0x328]
cmp edx, dword [ebp - 0x32c]
jne 0x1003d8e6
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret