Function at 0x402460
Capabilities:
Encrypt data using speck

Disassembly:
mov word [ecx + 0x28ba0040], fs
add byte [eax], al
add byte [ebx], ch
ror byte [ecx + 0xb539855], 1
sar byte [eax + 0x116e7041], 1
mov ebx, 0x17
sub dword [ebp - 0x68], eax
sub edx, ebx
add dword [ebp - 0x68], edx
push esi
add edx, edx
and edx, ebx
sub dword [ebp - 0x68], edx
push edi
sub ebx, eax
mov dword [ebp - 0x68], ebx
add ebx, edx
mov edi, dword [ebp - 0x68]
sub edi, edx
add dword [ebp - 0x68], ebx
cmp edi, dword [0x40a18c]
je 0x4024b9
mov ecx, dword [ecx + 0x7d290040]
cwde
mov eax, 0x512aa163
sub ecx, eax
add dword [ebp - 0x68], eax
sub dword [ebp - 0x68], ecx
push 0xe
push cs
push 0
call dword [0x4090c4]
test eax, 0x50
jne 0x4024ea
mov ebx, 0x46
add ebx, ebx
cmp edi, dword [ebp - 8]
jne 0x4024ea
mov edx, 0x4c
sub edx, eax
mov esi, 7
add dword [ebp - 0x68], edx
add dword [ebp - 0x68], esi
sub dword [ebp - 0x68], ebx
mov dword [ebp - 0x88], eax
mov ecx, 0x8fc5
mov edi, dword [ebp - 0x68]
sub edi, ecx
sub dword [ebp - 0x68], edi
lea eax, [ebp - 0x74]
push eax
call dword [0x4090a0]
add esi, eax
add esi, edi
test esi, 0x62
jne 0x4025d8
mov edi, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
add dword [ebp - 0x68], eax
cmp esi, 0x12
je 0x4025d8
add dword [ebp - 0x68], edi
or esi, edi
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
or ecx, eax
test ecx, 0x8694
jne 0x4025d8
mov edi, dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
cmp ecx, edi
je 0x4025d8
mov ebx, dword [ebp - 0x68]
test edi, 0x62
je 0x4025d8
mov eax, dword [ebp - 0x68]
cmp esi, dword [0x40a18c]
jne 0x4025d8
xor dword [ebp - 0x68], ecx
cmp edx, esi
je 0x4025d8
sub dword [ebp - 0x68], ecx
mov ecx, ebx
mov ebx, 0x82b
and dword [ebp - 0x68], eax
cmp edi, ecx
jne 0x4025d8
mov eax, dword [ebp - 0x68]
cmp edi, ebx
jne 0x4025d8
add ebx, eax
mov eax, dword [ebp - 0x68]
sub edi, esi
mov esi, dword [0x40a18c]
and esi, ebx
sub eax, edi
cmp esi, dword [0x40a18c]
jne 0x4025d8
mov dword [ebp - 0x6c], edx
cmp ecx, 0x1218302
je 0x4025d8
sub esi, ebx
mov edx, dword [0x40a18c]
cmp ecx, dword [ecx + 0x1f750040]
add edx, edx
mov edi, 0x32a4
sub ecx, edx
or edi, eax
mov ebx, dword [ebp - 0x68]
sub esi, edi
and ebx, edx
and ebx, edx
sub dword [ebp - 0x6c], ecx
sub ebx, edi
mov dword [ebp - 0x68], ebx
add dword [ebp - 0x68], esi
push 0xb9
push 0xc1
call dword [0x4090b8]
mov ecx, 0x68000000
rol dword [eax], 0
add bh, bh
adc eax, 0x4090b8
or dword [ebp - 0x68], edi
mov dword [ebp - 0xc], eax
mov eax, dword [0x40a18c]
mov edx, ebx
cmp edx, dword [0x40a18c]
je 0x40263d
or edx, eax
cmp edx, edi
je 0x40263d
cmp edx, dword [ebp - 4]
je 0x40263d
sub edx, edi
cmp edx, ebx
jne 0x40263d
cmp edx, dword [ebp - 0x64]
je 0x40263d
test edx, 0xc1
jne 0x40263d
mov ebx, esi
add dword [ebp - 0x68], ebx
mov esi, dword [0x40a138]
add esi, edi
add esi, edx
sub esi, eax
cmp esi, 0x2b
je 0x40263d
add dword [ebp - 0x68], ebx
add esi, ebx
cmp esi, edx
jne 0x40263d
sub dword [ebp - 0x68], esi
lea eax, [ebp - 0x5c]
push eax
call dword [0x409094]
xor dword [ebp - 0x68], edi
sub dword [ebp - 0x68], ebx
and edi, esi
cmp edi, 0xffffffa4
jne 0x4029fe
add edi, esi
mov ebx, 0x15
add ebx, eax
mov esi, dword [ebp - 0x68]
sub dword [ebp - 0x68], edi
test ebx, 0xa
jne 0x4029fe
mov edx, dword [ebp - 0x68]
mov edi, 0x5b7e
sub ebx, edx
cmp ebx, 0x4b
jne 0x4029fe
mov eax, dword [ebp - 0x68]
mov edi, 0x4c
cmp eax, dword [ebp - 8]
je 0x4029fe
add dword [ebp - 0x68], esi
add dword [ebp - 0x68], eax
cmp ebx, dword [ebp - 8]
je 0x4029fe
mov esi, dword [ebp - 0x68]
add dword [ebp - 0x68], esi
and edi, eax
cmp ebx, edi
je 0x4029fe
mov edx, dword [ebp - 0x68]
sub edx, edi
and ebx, edx
cmp ebx, esi
je 0x4029fe
sub dword [ebp - 0x68], esi
cmp ebx, 0x6c5e
jne 0x4029fe
mov esi, edx
mov edx, dword [ebp - 0x68]
sub ebx, esi
sub edx, esi
add edx, eax
and ebx, esi
add dword [ebp - 0x68], edx
or ebx, eax
cmp ebx, edx
je 0x4029fe
cmp eax, dword [ebp - 0x6c]
je 0x4029fe
mov eax, dword [0x40a14c]
and eax, edi
add ebx, edx
cmp ebx, 0xb58e
jne 0x4029fe
cmp ebx, 0x7c
jne 0x4029fe
mov esi, 0x92
mov edx, eax
and ebx, edi
sub dword [ebp - 0x68], ebx
cmp edx, dword [0x40a138]
jne 0x4029fe
mov ebx, dword [ebp - 0x68]
and edx, edi
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 0x6c]
jne 0x4029fe
cmp ebx, 0x19
je 0x4029fe
or eax, ebx
mov ebx, 0x9f
cmp edx, 0xffffffb2
jne 0x4029fe
cmp edx, 0x35
jne 0x4029fe
mov edi, eax
cmp edx, dword [0x40a18c]
jne 0x4029fe
mov ecx, dword [ecx + 0x40]
add byte [ecx], al
dec ebp
cwde
or dword [ebp - 0x68], edi
mov eax, 0xec
test edx, 0x39
jne 0x4029fd
mov esi, dword [ebp - 0x68]
sub edx, edi
mov ecx, dword [ebp - 0x68]
add edx, ebx
and esi, edx
cmp ecx, edi
je 0x4029fd
mov edx, dword [ebp - 0x68]
cmp esi, dword [ebp - 0x68]
je 0x4029fd
add edx, ecx
mov ecx, 0xc9
or dword [ebp - 0x68], edx
mov edi, 0x16
sub ecx, esi
add edi, ebx
sub edi, ecx
or edi, esi
test edi, 0xe572
je 0x4029fd
mov ebx, dword [ebp - 0x68]
sub dword [ebp - 0x68], ebx
mov ecx, dword [ebp - 0x68]
add ecx, esi
add dword [ebp - 0x68], ecx
cmp edi, 4
je 0x4029fd
add dword [ebp - 0x68], edx
mov ebx, 0x3765
cmp edi, eax
jne 0x4029fd
sub dword [ebp - 0x68], edi
or ebx, eax
or dword [ebp - 0x68], esi
mov esi, eax
mov eax, dword [ebp - 0x68]
and ebx, ecx
cmp eax, edx
jne 0x4029fd
mov ecx, dword [ebp - 0x68]
mov edx, esi
cmp ebx, 0xffffff91
je 0x4029fd
add ecx, edi
test eax, 0xca96
je 0x4029fd
mov esi, dword [ebp - 0x68]
mov edi, dword [ebp - 0x68]
and dword [ebp - 0x68], ebx
cmp edi, 0xffffffce
je 0x4029fd
add dword [ebp - 0x68], ecx
add dword [ebp - 0x68], edi
or dword [ebp - 0x68], esi
mov ecx, dword [ebp - 0x68]
mov esi, 0x81062100
add dword [ebp - 0x68], ecx
add dword [ebp - 0x68], eax
sub esi, ebx
cmp ebx, 0xb
je 0x4029fd
mov ebx, 0xe0
mov ecx, dword [ebp - 0x68]
sub ebx, esi
cmp ebx, ecx
jne 0x4029fd
mov esi, 0xfb
cmp ebx, eax
jne 0x4029fd
mov edi, dword [ebp - 0x68]
or edi, edx
mov edx, dword [ebp - 0x68]
or ebx, edi
add edx, eax
sub ebx, eax
cmp edi, esi
je 0x4029fd
mov edi, dword [ebp - 0x68]
mov eax, dword [ebp - 0x68]
cmp ecx, dword [ecx - 0x7af0ffc0]
pop ebx
add dword [eax], eax
add byte [ebx], al
sti
mov ebx, dword [ebp - 0x68]
or edi, eax
mov eax, dword [ebp - 0x68]
sub edx, ebx
cmp ecx, edi
je 0x4029fc
test byte [edi + 1], al
add byte [eax], al
mov ebx, esi
mov esi, dword [ebp - 0x68]
sub dword [ebp - 0x68], ecx
sub edx, edi
cmp eax, dword [0x40a14c]
jne 0x4029fc
add edx, edx
mov edi, dword [0x40a134]
mov ecx, dword [ebp - 0x68]
or edi, eax
cmp ecx, ebx
je 0x4029fc
cmp ecx, dword [ebp - 0x6c]
je 0x4029fc
mov eax, dword [ebp - 0x68]
and eax, ecx
sub esi, edi
or edx, edi
sub edx, esi
mov edi, dword [0x40a144]
and edx, ecx
add dword [ebp - 0x68], esi
sub edx, edi
cmp edx, dword [ebp - 0x6c]
je 0x4029fc
mov eax, dword [ecx + 0x40]
add byte [ebx + 0x23ce23df], cl
shl dword [ecx], cl
jne 0x4028b0
sub dword [ebp - 0x68], ecx
or eax, ecx
cmp eax, edx
je 0x4029fb
sub edx, edi
mov ebx, 0x5a
sub ebx, esi
mov edi, eax
test ebx, 0x3b
jne 0x4029fb
and edx, ecx
add edi, ecx
add edx, eax
mov esi, 0x322b
mov dword [ebp - 0x68], esi
mov esi, ebx
sub edx, ebx
sub dword [ebp - 0x68], esi
sub edi, ecx
cmp edx, edi
jne 0x4029fb
mov esi, dword [ebp - 0x68]
mov eax, 0xfd
cmp edx, dword [ebp - 0x84]
jne 0x4029fb
or edx, ebx
mov ebx, 0x64
add dword [ebp - 0x68], esi
mov esi, dword [ebp - 0x68]
cmp esi, dword [0x40a18c]
jne 0x4029fb
cmp edi, 0x30
je 0x4029c8
mov eax, dword [0x40a134]
mov ecx, 0x5e
cmp edi, esi
je 0x4029c8
add dword [ebp - 0x68], esi
sub dword [ebp - 0x68], edx
sub eax, ecx
cmp edi, 0x68a5
je 0x4029c8
sub dword [ebp - 0x68], edi
and esi, edi
mov edx, dword [0x40a140]
and esi, edx
sub dword [ebp - 0x68], ecx
or esi, edi
mov edx, 0x22
add dword [ebp - 0x68], edx
add dword [ebp - 0x68], eax
mov dword [ebp - 0x80], esi
mov edi, ecx
sub edi, ecx
and edi, ecx
mov edx, dword [ebp - 0x68]
and edx, esi
and edi, ecx
cmp edx, dword [0x40a144]
jne 0x4029f5
add dword [ebp - 0x68], edx
mov esi, 0xf1
mov eax, 0xfa
and eax, ecx
add dword [ebp - 0x68], edi
and dword [ebp - 0x68], eax
mov dword [ebp - 0x68], esi
sub dword [ebp - 0x68], edi
sub dword [ebp - 0x68], ebx
sub edi, edx
cli
cmp edi, eax
clc
je 0x402a15
mov ebx, dword [ebp - 0x68]
mov esi, 0xd3
sub ebx, esi
add edi, esi
sub dword [ebp - 0x68], edi
add ebx, eax
and dword [ebp - 0x68], ebx
cmp ebx, edx
je 0x402a6d
test edx, 0xa8
jne 0x402a6d
add edi, edx
add dword [ebp - 0x68], ecx
and edi, edx
sub edi, esi
mov ebx, 0xd449
mov esi, dword [ebp - 0x68]
sub dword [ebp - 0x68], esi
add edi, esi
sub ebx, esi
add dword [ebp - 0x68], ebx
and edi, ecx
cmp edi, ecx
jne 0x402a6d
test edi, 0x92
jne 0x402a6d
cmp edi, ebx
je 0x402a6d
and edi, esi
sub edi, esi
mov esi, 0x2991
mov ecx, dword [ebp - 0x68]
and esi, edx
sub edi, edx
and esi, ecx
sub dword [ebp - 0x68], esi
cmp edi, dword [ebp - 0x68]
jne 0x402a6d
sub edi, ebx
and dword [ebp - 0x68], edi
add dword [ebp - 0x68], eax
sub dword [ebp - 0x68], edi
mov edi, edx
sub dword [ebp - 0x68], edi
mov esi, dword [ebp - 0x68]
mov edx, dword [ebp - 0x68]
sub edx, edi
cmp edx, 0x54
je 0x402a8c
and esi, edi
add edx, esi
add dword [ebp - 0x68], edx
mov ecx, 0xea
mov edx, esi
cmp esi, edi
je 0x402b1b
mov esi, 0x8c
sub dword [ebp - 0x68], esi
mov eax, dword [ebp - 0x68]
cmp eax, 0xffffff9a
jne 0x402b1b
mov esi, dword [ebp - 0x68]
add ecx, edx
sub eax, edi
mov ebx, esi
cmp ecx, 0x11
je 0x402b1b
sub dword [ebp - 0x68], ebx
mov edi, esi
xor dword [ebp - 0x68], edi
or eax, ecx
mov ebx, 0x51c3
add eax, edi
cmp eax, edx
jne 0x402b1b
mov ecx, dword [ebp - 0x68]
sub dword [ebp - 0x68], ebx
cmp ecx, 0xfffffffb
je 0x402b1b
mov edi, 0x28
mov edx, dword [ebp - 0x68]
sub dword [ebp - 0x68], edx
sub eax, edx
or dword [ebp - 0x68], edi
add eax, eax
test ecx, 0xe0
jne 0x402b1b
mov edx, ebx
mov edi, 0xe1
or dword [ebp - 0x68], esi
cmp eax, dword [0x40a14c]
jne 0x402b1b
or dword [ebp - 0x68], edi
cmp eax, edi
jne 0x402b1b
add dword [ebp - 0x68], ecx
mov ebx, dword [ebp - 0x68]
sub dword [ebp - 0x68], edx
xor dword [ebp - 0x68], ebx
add dword [ebp - 0x68], eax
sub eax, edx
sub eax, edx
sub eax, ebx
mov esi, dword [ebp - 0x68]
sub eax, edi
mov edi, dword [ebp - 0x68]
mov dword [ebp - 0x68], edi
sub dword [ebp - 0x68], eax
sub esi, edi
add esi, esi
cmp eax, dword [0x40a144]
je 0x402b3e
inc esp
mov eax, dword [0x3740040]
sub dword [ebp - 0x68], esi
add dword [ebp - 0x68], ecx
cmp ecx, dword [ebp - 0x68]
jne 0x402b49
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x68]
cmp edi, 0x1566b41
je 0x402b6d
sub eax, edi
add eax, esi
mov edi, ecx
add dword [ebp - 0x68], edi
mov ebx, dword [ebp - 0x68]
cmp ebx, esi
je 0x402b6d
and eax, ebx
cmp esi, ebx
je 0x402b6d
sub dword [ebp - 0x68], eax
cmp edi, dword [0x40a14c]
je 0x402bba
sub eax, ebx
mov edx, ecx
or edx, edi
or edx, edi
sub edx, eax
mov eax, 0x88
and dword [ebp - 0x68], edi
add dword [ebp - 0x68], esi
sub edx, ebx
cmp esi, 0xffffffe6
jne 0x402bba
mov ecx, dword [ebp - 0x68]
add edx, esi
sub ecx, ebx
mov esi, dword [ebp - 0x68]
cmp edx, edi
jne 0x402bb7
mov dword [ebp - 0x68], edx
test ecx, 0x13
jne 0x402b35
pop ebp
cwde
and ecx, esi
mov esi, ebx
add dword [ebp - 0x68], esi
xor dword [ebp - 0x68], ecx
xor dword [ebp - 0x68], eax
inc ebp
cwde
sub ecx, esi
into
mov esi, dword [0x40a18c]
sub ecx, esi
mov edi, dword [ebp - 0x68]
or edi, eax
sub dword [ebp - 0x68], ecx
cmp edi, 0x3c
je 0x402bde
sub dword [ebp - 0x68], ecx
cmp edi, edx
jne 0x402bde
cmp ecx, edi
je 0x402bde
mov dword [ebp - 0x68], edi
and edx, edi
add edx, ecx
add dword [ebp - 0x68], esi
mov edi, dword [0x40a1a4]
mov ebx, edi
cmp edx, edi
je 0x402dd6
mov esi, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
sub dword [ebp - 0x68], ebx
mov dword [ebp - 0x68], esi
or ecx, edi
and ecx, ebx
xor dword [ebp - 0x68], edx
cmp ecx, dword [ebp - 0xc]
jne 0x402dd6
cmp ecx, 0xffffffd4
jne 0x402dd6
cmp ecx, 0x89181291
jne 0x402dd6
sub ecx, esi
cmp edx, dword [ebp - 0xc]
jne 0x402dd6
mov eax, 0xbc
sub ecx, edi
cmp ecx, 0x65b1
je 0x402dd6
and eax, ecx
mov esi, dword [ebp - 0x68]
mov edx, 0xc0
and esi, ebx
test esi, 0xa4
jne 0x402dd6
and dword [ebp - 0x68], edx
mov ebx, 0x6ca5
mov ecx, dword [ecx + 0x4d290040]
cwde
sub dword [ebp - 0x68], ecx
add dword [ebp - 0x68], ebx
cmp esi, dword [ebp - 0x84]
jne 0x402dd5
add esi, ebx
add dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
cmp eax, dword [ebp - 4]
jne 0x402dd5
mov edi, dword [ebp - 0x68]
mov dword [ebp - 0x68], esi
and edi, ebx
sub dword [ebp - 0x68], eax
test edi, 0x58
jne 0x402dd5
add edi, ecx
mov ecx, dword [ebp - 0x68]
or dword [ebp - 0x68], ecx
mov ecx, 0xf
cmp edi, dword [0x40a138]
je 0x402dd5
mov esi, ebx
mov edx, dword [ebp - 0x68]
sub edi, esi
cmp edx, eax
je 0x402dd5
add dword [ebp - 0x68], eax
mov ebx, 0xcf
mov eax, 0xaf
sub edx, esi
sub dword [ebp - 0x68], ecx
cmp edx, 0x51
je 0x402dd5
or dword [ebp - 0x68], edi
cmp edx, 0x3b
je 0x402dd5
sub eax, ecx
sub dword [ebp - 0x68], edx
mov edi, dword [ebp - 0x68]
test edi, 0xbb
jne 0x402dd5
mov ecx, dword [ebp - 0x68]
mov esi, dword [0x40a144]
sub ebx, esi
cmp edx, ebx
je 0x402dd5
cmp ecx, 0xc340
jne 0x402dd5
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x68], edi
mov edx, dword [ebp - 0x68]
cmp esi, dword [0x40a14c]
jne 0x402dd5
and ebx, edx
add esi, edi
sub ebx, edi
cmp esi, 0x53
jne 0x402dd5
sub esi, ecx
mov eax, 0x4c
mov edx, dword [ebp - 0x68]
cmp esi, edx
je 0x402dd5
and ebx, ecx
add dword [ebp - 0x68], ebx
test esi, 0xe2
je 0x402dd5
test esi, 0xcb
je 0x402dd5
mov ecx, ebx
sub eax, edx
mov edi, dword [ebp - 0x68]
cmp ebx, dword [0x40a134]
je 0x402dd5
cmp ebx, dword [ebp - 0x64]
jne 0x402dd5
and edi, esi
mov dword [ebp - 0x68], eax
mov eax, 0xf6
mov ebx, 0x7a
sub dword [ebp - 0x68], ebx
add dword [ebp - 0x68], eax
or edi, edx
cmp ecx, 0xffffffdc
je 0x402dd5
mov esi, dword [ebp - 0x68]
or dword [ebp - 0x68], ebx
mov eax, pe_nt_image_headers32
cmp edi, dword [ebp - 0x68]
jne 0x402dd5
or edi, edx
mov ebx, dword [0x40a18c]
mov edx, 0x3239
add ebx, edi
add dword [ebp - 0x68], eax
add ebx, ecx
sub ebx, ecx
add edx, ebx
sub dword [ebp - 0x68], edx
add esi, edi
and esi, ebx
add esi, edx
sub esi, ebx
or dword [ebp - 0x68], esi
or edx, edi
xlatb
mov eax, dword [0x40a140]
mov esi, dword [ebp - 0x68]
sub edx, eax
add dword [ebp - 0x68], edx
cmp esi, 0xffffffc7
jne 0x402e94
cmp esi, edx
jne 0x402e94
add esi, edx
mov eax, dword [ebp - 0x68]
cmp eax, dword [0x40a1a4]
jne 0x402e94
sub dword [ebp - 0x68], eax
and esi, ebx
mov edx, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x68]
cmp edx, 0xffffffa9
je 0x402e94
sub dword [ebp - 0x68], esi
add dword [ebp - 0x68], esi
add ebx, esi
mov esi, 0xc5
test ebx, 0xb662
jne 0x402e94
or edx, esi
and edx, ecx
cmp ebx, 6
je 0x402e94
mov esi, 0xea89
mov ecx, 0x93
sub dword [ebp - 0x68], esi
sub ebx, edi
sub dword [ebp - 0x68], esi
add ecx, ebx
sub ecx, edi
cmp ebx, esi
jne 0x402e94
mov ebx, dword [ebp - 0x68]
and ebx, edi
sub dword [ebp - 0x68], edx
cmp ecx, edi
jne 0x402e94
mov edx, dword [ebp - 0x68]
mov dword [ebp - 0x68], eax
mov edi, dword [ebp - 0x68]
sub edi, edx
add dword [ebp - 0x68], eax
sub ecx, edx
cmp edi, 0x34
jne 0x402e94
mov edx, 0x7315
sub dword [ebp - 0x68], ecx
adc eax, 0x29000073
dec ebp
cwde
mov ecx, 0x110aa08
sub dword [ebp - 0x68], edx
sub dword [ebp - 0x68], ebx
add ecx, eax
sub dword [ebp - 0x68], edx
sub ecx, edx
sub dword [ebp - 0x68], ecx
sub edi, eax
add edi, esi
or dword [ebp - 0x68], edi
mov edi, dword [ebp - 0x68]
add dword [ebp - 0x68], edi
add dword [ebp - 0x68], ebx
sub ecx, ebx
cmp esp, dword [ecx + 0x29740040]
cmp edi, esi
je 0x402ecf
cmp ecx, 0xea05
je 0x402ecf
mov edx, dword [ebp - 0x68]
cmp ecx, dword [ecx + 0x40]
add byte [ebp + 0x12], dh
add dword [ebp - 0x68], ecx
mov edi, ecx
mov ecx, 0x84
and ecx, edx
sub dword [ebp - 0x68], edi
sub dword [ebp - 0x68], ecx
lea edi, [ebp - 0x60]
jge 0x402e71
mov eax, 0xf7
mov esi, dword [ebp - 0x68]
cmp esi, edi
jne 0x402f48
mov ecx, dword [ebp - 0x68]
sub dword [ebp - 0x68], edi
mov edx, dword [ebp - 0x68]
cmp ecx, edi
jne 0x402f48
sub edx, esi
cmp edx, 0x9200248
jne 0x402f48
mov ebx, 0xbc
mov esi, dword [ebp - 0x68]
sub esi, ebx
cmp edx, esi
jne 0x402f48
test esi, 0xd0
je 0x402f48
mov ebx, 0x99
mov dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x68]
sub dword [ebp - 0x68], edx
cmp esi, dword [0x40a18c]
je 0x402f48
mov edx, 0x5d6c
sub dword [ebp - 0x68], ecx
or dword [ebp - 0x68], ebx
sub dword [ebp - 0x68], edx
sub eax, edx
and eax, esi
cmp edi, dword [0x40a18c]
jne 0x402f48
mov esi, 0xeb
mov dword [ebp - 0x68], esi
sub dword [ebp - 0x68], edx
mov dword [ebp - 0x10], eax
add dword [ebp - 0x68], esi
push edi
add eax, edi
mov esi, dword [ebp - 0x68]
mov edx, dword [0x40a138]
mov dword [ebp - 0x68], eax
test edi, 0xe7
je 0x403034
cmp esi, dword [0x40a140]
je 0x403034
add dword [ebp - 0x68], ebx
mov edx, dword [ebp - 0x68]
sub dword [ebp - 0x68], esi
test edx, 0xf9
je 0x403034
sub edx, ebx
mov ebx, 0xf0
mov esi, dword [ebp - 0x68]
test edx, 0x663e
je 0x403034
mov ecx, dword [ebp - 0x68]
mov edi, dword [ebp - 0x68]
add edx, edx
add dword [ebp - 0x68], edi
cmp edx, 0x16
je 0x403034
mov edi, edx
add ecx, edi
cmp esi, dword [0x40a14c]
je 0x403034
sub esi, edx
mov edx, 0xe61d
or ecx, ebx
mov ebx, edi
add dword [ebp - 0x68], edx
sub ecx, esi
add dword [ebp - 0x68], ebx
or ecx, ebx
add ecx, edx
cmp eax, dword [ecx + 0x40]
add byte [ebp + 0x58], dh
mov esi, dword [ebp - 0x68]
and ecx, ebx
sub esi, edx
test eax, 0x2d
jne 0x403033
mov edx, 0xf
add ecx, ecx
mov eax, dword [ebp - 0x68]
sub dword [ebp - 0x68], esi
or eax, esi
cmp edi, 0xffffff9e
jne 0x403007
cmp ecx, 0xffffffcf
jne 0x403007
and eax, ecx
add dword [ebp - 0x68], eax
cmp eax, dword [ebp - 0x68]
jne 0x403033
mov eax, dword [ebp - 0x68]
sub eax, esi
cmp esi, dword [ebp - 0x64]
jne 0x403033
cmp esi, dword [ebp - 0x68]
jne 0x403033
mov edx, dword [0x40a120]
add edx, edx
sub eax, edx
sub eax, edi
mov esi, eax
or esi, eax
cmp esi, 0xffffffe5
jne 0x403033
add dword [ebp - 0x68], esi
push 0xe1d8f249
dec ecx
fsub st(1)
cmp edi, dword [ebp - 0x80]
je 0x403042
add ecx, eax
add dword [ebp - 0x68], ecx
mov eax, dword [ebp - 0x68]
cmp esp, dword [ecx + 0x11750040]
mov esi, dword [ebp - 0x68]
mov ecx, dword [ebp - 0x68]
sub dword [ebp - 0x68], ecx
sub dword [ebp - 0x68], esi
sub eax, edx
sub dword [ebp - 0x68], eax
call fcn.004035e7
mov ecx, eax
test ecx, 0x62
jne 0x403081
mov eax, esi
mov esi, 0x5b
sub dword [ebp - 0x68], eax
sub ecx, esi
sub ecx, edi
add ecx, eax
sub ecx, ebx
sub dword [ebp - 0x68], ecx
mov esi, dword [ebp - 0x60]
sub dword [ebp - 0x68], esi
shr esi, 0x10
mov ebx, 0x46
mov ecx, dword [ebp - 0x68]
and dword [ebp - 0x68], esi
add ecx, edi
or dword [ebp - 0x68], eax
sub ebx, esi
add dword [ebp - 0x68], ecx
sub dword [ebp - 0x68], ebx
cmp esi, 0x9c2d
jne 0x40332c
add dword [ebp - 0x68], esi
mov eax, 0x9c6d6172
mov edx, dword [ebp - 0x68]
mov esi, 0x55a88208
sub dword [ebp - 0x68], eax
cmp edx, 0xbce
jne 0x403104
mov ebx, 0x60
test edx, 0x67
jne 0x403104
cmp edx, 0x51
je 0x403104
add dword [ebp - 0x68], ecx
sub edx, eax
cmp edi, edx
je 0x403104
mov edi, dword [0x40a15c]
mov ecx, dword [ebp - 0x68]
sub edx, ebx
sub dword [ebp - 0x68], ecx
sub edi, edx
and dword [ebp - 0x68], edi
sub esi, eax
sub esi, edx
sub esi, edx
sub esi, ebx
sub esi, eax
sub dword [ebp - 0x68], esi
sub eax, dword [ebp - 0x60]
mov ebx, dword [ebp - 0x68]
add ebx, eax
sub ebx, edx
mov edi, 0xfa
add ebx, ebx
add edi, eax
and ebx, edi
cmp ebx, 0xffffffe0
jne 0x40312a
add ebx, eax
add ebx, eax
cmp edx, 0xffffffb7
je 0x40312a
sub dword [ebp - 0x68], ebx
call eax
mov edi, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x68]
sub edi, esi
or dword [ebp - 0x68], ebx
sub edi, eax
sub dword [ebp - 0x68], ebx
and edi, ebx
cmp edi, dword [0x40a15c]
jne 0x403167
cmp edi, 0x58
jne 0x403167
mov edx, 0xec3e
mov ecx, 0xe
add edx, edx
sub ecx, edi
sub ecx, edi
add dword [ebp - 0x68], ecx
add ebx, ebx
sub ebx, edx
add ebx, ecx
mov dword [ebp - 0x68], ebx
mov dword [ebp - 0x18], eax
mov ebx, 0x88
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x68], ebx
sub dword [ebp - 0x68], eax
mov edi, 0x4043b7
mov ecx, esi
add ecx, edi
mov esi, 0xd2
sub esi, eax
add ecx, edx
sub dword [ebp - 0x68], esi
add ecx, esi
cmp eax, ecx
je 0x4031a3
mov eax, dword [0x40a180]
cmp ecx, edx
jne 0x4031a3
mov dword [ebp - 0x68], ecx
sub dword [ebp - 0x68], eax
push dword [ebp - 0x60]
push 0x9c2d1f75
push dword [ebp - 0x18]
call edi
and esi, eax
mov edx, 0x83
and esi, ebx
mov edi, dword [ebp - 0x68]
cmp esi, 0x1a
je 0x40321e
sub dword [ebp - 0x68], edx
mov eax, dword [ebp - 0x68]
mov ecx, edi
add dword [ebp - 0x68], eax
add esi, edx
add esi, eax
cmp esi, dword [ecx]
inc eax
add byte [esi + eax*2 + 3], dh
test byte [ebx + 0x3f7431f9], 0xbb
pop ebx
add byte [eax], al
add byte [edx + 0x3cbd], bh
add ebx, ebx
or dword [ebp - 0x68], ecx
cmp esi, ecx
jne 0x40321d
mov edx, ecx
add dword [ebp - 0x68], edx
mov eax, 0xfa
cmp esi, 0x2d
jne 0x40321d
or dword [ebp - 0x68], eax
mov eax, 0x75
add esi, eax
mov edi, dword [ebp - 0x68]
and esi, ebx
cmp esi, 0x1f21
jne 0x40321d
add dword [ebp - 0x68], edi
or dword [ebp - 0x68], esi
add dword [ebp - 0x18], 0x2d
inc ebp
call 0x403251
mov eax, 0xcb
add eax, esi
mov ebx, dword [0x40a120]
cmp esi, 0x4f
jne 0x40324f
mov edi, dword [0x40a190]
sub dword [ebp - 0x68], eax
sub edi, esi
mov ebx, dword [ebp - 0x68]
sub ebx, eax
mov dword [ebp - 0x14], edi
sub dword [ebp - 0x14], eax
sub dword [ebp - 0x68], ebx
mov edx, dword [ebp - 0x18]
sub dword [ebp - 0x68], edx
call edx
mov esi, dword [ebp - 0x68]
sub esi, edi
mov eax, esi
test eax, 0x8b57
jne 0x4032f0
mov edx, 0x74
mov ecx, 0xe3
or dword [ebp - 0x68], edi
or dword [ebp - 0x68], esi
sub dword [ebp - 0x68], ecx
sub dword [ebp - 0x68], edx
cmp eax, esi
jne 0x4032f0
mov edx, dword [ebp - 0x68]
test edx, 0x64
jne 0x4032f0
mov edi, ecx
sub edx, ecx
add edx, eax
mov ebx, dword [ebp - 0x68]
or edi, esi
cmp edi, eax
jne 0x4032f0
sub dword [ebp - 0x68], esi
mov esi, dword [0x40a190]
sub edx, edi
sub dword [ebp - 0x68], ecx
mov ecx, dword [ebp - 0x68]
cmp edx, esi
jne 0x4032f0
mov eax, dword [0x40a140]
sub dword [ebp - 0x68], edx
sub dword [ebp - 0x68], ebx
mov edx, dword [ebp - 0x68]
test ecx, 0xda1a
jne 0x4032f0
mov edi, dword [ebp - 0x68]
add dword [ebp - 0x68], ecx
add dword [ebp - 0x68], eax
add esi, edi
sub edx, esi
cmp edx, edi
je 0x4032f0
mov esi, dword [ebp - 0x68]
mov edi, dword [ebp - 0x68]
add edi, edx
and dword [ebp - 0x68], esi
cmp edi, dword [0x40a14c]
jne 0x4032f0
add dword [ebp - 0x68], edi
mov edx, 0x5f
mov eax, dword [ebp - 0x68]
sub eax, ecx
add eax, edi
cmp ecx, 0xffffffdb
jne 0x40331a
add edx, ebx
mov esi, edx
mov ecx, dword [ebp - 0x68]
and esi, ebx
or dword [ebp - 0x68], eax
or ecx, esi
cmp esp, dword [eax]
mov eax, dword [0x3750040]
add dword [ebp - 0x68], ecx
mov eax, dword [ebp - 0x68]
inc ebp
cwde
mov esi, 0x6081
add dword [ebp - 0x68], eax
or dword [ebp - 0x68], edx
sub dword [ebp - 0x68], esi
mov eax, 0x43f
mov ecx, dword [ebp - 0x68]
sub dword [ebp - 0x68], ecx
add al, 0
add byte [ebx + 0x4d29984d], cl
cwde
add dword [ebp - 0x68], eax
cwde
sub dword [ebp - 0x68], esi
add dword [ebp - 0x68], edx
cmp esp, dword [ecx + 0x7750040]
sub ecx, eax
sub ecx, esi
add dword [ebp - 0x68], ecx
add dword [ebp - 0x68], ecx
mov edi, dword [ebp - 0x68]
mov ebx, dword [ebp - 0x68]
cmp ebx, dword [0x40a18c]
jne 0x403369
add ebx, esi
and edi, esi
sub dword [ebp - 0x68], ebx
or edi, eax
or dword [ebp - 0x68], edi
jmp 0x403337