Function at 0x40c340
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x60
mov eax, dword [0x4255e0]
xor eax, esp
mov dword [esp + 0x5c], eax
mov dword [esp + 0xc], ecx
mov esi, dword [0x425fc4]
mov eax, dword [0x425fc8]
lea edx, [esi - 1]
imul edx, esi
mov esi, edx
and edx, 0x41b0c077
not esi
and esi, 0xbe4f3f88
or esi, edx
mov edi, esi
xor esi, 0xbc430788
xor edi, 0x41b0c077
and esi, 0xbd5347a9
mov edx, edi
and edi, 0x42acb856
or edi, esi
and edx, 0xfffffffe
xor edi, 0x42acb857
mov esi, edx
and esi, edi
xor edi, edx
or edi, esi
mov edx, edi
and edi, 0x10c71c85
not edx
and edx, 0xef38e37a
or edi, edx
mov edx, edi
xor edi, 0xe338407a
xor edx, 0x10c30c01
and edi, 0xe33c50fe
and edx, 0x1cc3af01
or edx, edi
mov esi, edx
xor edx, 0x8c30d00
xor esi, 0x2c5002
and edx, 0xebd30dfc
and esi, 0x142cf203
or edx, esi
mov esi, edx
xor edx, 0x3520980
xor esi, 0x243003
and edx, 0x175acb80
and esi, 0xe8a5347f
or esi, edx
xor esi, 0xe8a5347f
sete byte [esp + 0x16]
cmp eax, 0xa
lea eax, [ecx + 4]
mov dword [esp + 0x10], eax
mov eax, 0x83191ca0
setl byte [esp + 0x17]
nop dword [eax]
cmp eax, 0xdec506d6
jle 0x40ce80
cmp eax, 0x2f22ff4
jle 0x40c750
cmp eax, 0x2ce2470f
jg 0x40ca65
cmp eax, 0x2f22ff5
je 0x40cd75
cmp eax, 0x177714ed
jne 0x40c430
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
mov eax, dword [0x425fcc]
lea edi, [eax - 1]
imul edi, eax
mov eax, edi
and edi, 0xc649e8bc
not eax
and eax, 0x39b61743
or edi, eax
mov eax, edi
mov ecx, edi
xor edi, 0x2dcf70e5
xor ecx, 0x11a01042
xor eax, 0xc649e8bc
and edi, eax
and ecx, 0x93e0b84e
and eax, 0x6c1f47b1
or eax, ecx
mov ecx, eax
xor eax, 0x6c1f47b0
xor ecx, 0x6c1f47b1
mov ebx, ecx
and ecx, 1
and ebx, 0xeb869859
or eax, ecx
mov ebp, ebx
mov ecx, eax
and eax, 0x71bd52c1
and ebp, edi
xor edi, ebx
not ecx
or edi, ebp
and ecx, 0x8e42ad3e
mov ebp, 0xcda5a578
mov ebx, edi
and edi, 0xeb869858
or eax, ecx
mov ecx, dword [0x425fd0]
not ebx
xor eax, 0x71bd52c1
and ebx, 0x147967a7
or edi, ebx
mov ebx, edi
and ebx, eax
xor eax, edi
or eax, ebx
mov edi, eax
and eax, 0xa2ed30be
not edi
and edi, 0x5d12cf41
or eax, edi
mov edi, eax
xor eax, 0x400cf40
xor edi, 0x22081010
and eax, 0x84e5efee
and edi, 0x7b1a1011
or eax, edi
mov edi, eax
xor eax, 0x84e00e64
xor edi, 0x33020000
and eax, 0xccf81e75
and edi, 0x3307e18a
or edi, eax
xor edi, 0x3307e18a
sete ah
setne bl
sete byte [esp + 0x54]
cmp ecx, 9
setg al
cmp ecx, 0xa
mov cl, ah
setl ch
setl byte [esp + 0x58]
and cl, al
or al, ah
mov bh, ch
xor al, 1
and bh, bl
or bl, ch
xor bl, 1
or cl, bh
mov edx, ebx
and dl, al
xor al, bl
or al, dl
mov dl, ch
xor ch, ah
and dl, ah
or ch, dl
mov dl, ch
xor dl, cl
xor cl, 1
or cl, ch
xor dl, 1
xor cl, 1
or cl, dl
mov edx, ecx
xor dl, 1
mov ah, dl
and ah, cl
xor dl, ah
xor ah, 1
or ah, cl
xor ah, 1
or ah, dl
mov edx, eax
mov cl, ah
xor dl, 1
xor cl, 1
and dl, ah
and cl, al
or cl, dl
mov edx, eax
xor dl, ah
or ah, al
xor ah, 1
or ah, dl
mov edx, 0x931ac39f
mov al, ah
xor al, cl
test ah, 1
cmovne ebp, edx
test cl, 1
cmove ebp, edx
test al, 1
mov eax, 0xcda5a578
cmove ebp, eax
mov eax, 0xcbfcade7
nop dword [eax + eax]
cmp eax, 0xcda5a577
jg 0x40c720
cmp eax, 0x931ac39f
je 0x40c70c
cmp eax, 0xcbfcade7
jne 0x40c610
mov ah, byte [esp + 0x54]
movzx edx, byte [esp + 0x58]
mov edi, 0x64c737ac
mov bh, dl
mov bl, ah
mov ch, ah
xor bh, 1
xor bl, 1
mov al, bh
mov cl, bh
or bl, ah
or bh, dl
and al, dl
xor ch, bl
or bl, ah
xor cl, al
xor al, 1
xor bl, 1
or al, dl
mov dl, bh
or bl, ch
xor al, 1
xor dl, 1
xor bl, 1
or al, cl
mov ecx, eax
xor cl, 1
mov ch, cl
and dl, cl
or ch, bh
and bh, al
and al, cl
xor ch, 1
or bh, dl
mov dl, ch
and dl, bh
xor bh, ch
or bh, dl
mov edx, ebx
xor dl, bh
or bl, bh
xor dl, 1
xor bl, 1
and dl, bh
mov ch, dl
and ch, bl
xor bl, dl
mov edx, ecx
and dl, al
xor al, cl
or bl, ch
or al, dl
mov dl, ah
and dl, cl
xor cl, ah
xor al, ah
or cl, dl
mov edx, eax
xor cl, 1
and dl, cl
xor cl, al
or cl, dl
mov eax, ecx
mov edx, ecx
xor al, 1
and al, cl
xor al, 1
xor dl, al
or al, cl
mov ecx, ebx
xor al, 1
xor cl, 1
or al, dl
mov edx, ebx
and cl, al
xor al, 1
xor dl, al
and al, bl
and dl, bl
or al, cl
mov ebx, 0x931ac39f
mov ecx, edx
xor cl, al
test al, 1
mov eax, 0x931ac39f
cmovne eax, edi
test dl, 1
cmove eax, ebx
test cl, 1
cmovne eax, edi
cmp eax, 0xcda5a577
jle 0x40c61b
jmp 0x40c720
mov eax, 0x64c737ac
cmp eax, 0xcda5a577
jle 0x40c61b
nop dword [eax]
cmp eax, 0xcda5a578
je 0x40d4d5
cmp eax, 0x64c737ac
jne 0x40c610
mov eax, ebp
cmp eax, 0xcda5a577
jle 0x40c61b
jmp 0x40c720
cmp eax, 0xdec506d7
je 0x40cee6
cmp eax, 0xeceb55bb
je 0x40d186
cmp eax, 0xfb3bd31e
jne 0x40c430
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
mov dword [esp], eax
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
mov eax, dword [0x425fcc]
lea edx, [eax - 1]
imul edx, eax
mov esi, edx
xor esi, 0x504df9c2
and esi, edx
not edx
and edx, 0x504df9c2
mov eax, edx
and eax, esi
xor esi, edx
or esi, eax
mov eax, esi
and esi, 0xb3113e3a
not eax
and eax, 0x4ceec1c5
or esi, eax
mov edx, esi
mov eax, esi
xor esi, 0x1ca33806
xor edx, 0x4244c5b8
xor eax, 0x1ca33807
or edx, 0xb9383243
mov ebp, eax
and eax, 1
mov ebx, edx
or ebp, 0x46c7cdbc
and edx, 0x5612b8a2
or esi, eax
not ebx
and ebx, 0xc5451c
or ebx, edx
mov edx, ebp
and ebp, 0x5612b8a2
not edx
and edx, 0xa9280241
or edx, ebp
xor edx, ebx
mov ebx, edx
and edx, 0xc2c94e31
not ebx
and ebx, 0x3d36b1ce
or edx, ebx
mov ebx, edx
xor edx, 0x7bf17c73
mov eax, edx
xor ebx, 0x400000c
or edx, esi
and eax, 0xb0bec3d1
and ebx, 0x4f413c2e
not edx
or ebx, eax
mov eax, esi
and esi, 0xb0bec3d1
not eax
and eax, 0x4f413c2e
or eax, esi
xor eax, ebx
or edx, eax
mov eax, edx
not eax
mov esi, eax
and eax, edx
and edx, 0x25a275ee
and esi, 0xda5d8a11
or edx, esi
mov esi, edx
xor edx, 0xda5d8a11
xor esi, 0x12250a2
mov ebx, edx
and ebx, 0x3485a54c
and esi, 0xcb7a5ab3
or esi, ebx
mov ebx, eax
and eax, 0xcb7a5ab3
not ebx
or edx, ebx
and ebx, 0x3485a54c
or eax, ebx
not edx
xor eax, esi
mov esi, dword [0x425fd0]
or edx, eax
mov eax, edx
and edx, 0x5c275c43
not eax
and eax, 0xa3d8a3bc
or eax, edx
xor eax, 0xa3d8a3bc
setne dh
sete al
sete byte [esp + 0x54]
cmp esi, 9
setg ah
cmp esi, 0xa
setl bl
mov dl, ah
setl byte [esp + 0x58]
xor dh, ah
xor dl, bl
or bl, al
and dl, ah
xor bl, 1
mov bh, dl
xor bh, 1
and dl, bh
xor dl, 1
mov ecx, edx
or dl, bh
xor cl, bh
xor dl, 1
or dl, cl
xor dl, al
mov eax, ebx
and al, dh
xor dh, bl
mov ebx, 0x931ac39f
or dh, al
mov al, dh
xor al, 1
mov ecx, eax
and cl, dh
xor al, cl
xor cl, 1
or cl, dh
xor cl, 1
or cl, al
mov eax, ecx
and cl, dl
xor dl, 1
xor al, 1
mov ah, dl
xor ah, al
and al, dl
and ah, dl
or al, cl
mov edx, 0xcda5a578
mov cl, ah
xor cl, al
test cl, 1
cmovne ebx, edx
test al, 1
mov esi, ebx
cmovne esi, edx
test ah, 1
mov eax, 0xcbfcade7
cmove esi, ebx
nop dword [eax]
cmp eax, 0xcda5a577
jg 0x40ca40
cmp eax, 0x931ac39f
je 0x40ca2c
cmp eax, 0xcbfcade7
jne 0x40c950
movzx ecx, byte [esp + 0x54]
movzx eax, byte [esp + 0x58]
mov ebx, ecx
mov ah, cl
mov bh, al
xor bl, 1
and bl, cl
xor bl, 1
xor ah, bl
or bl, cl
xor bl, 1
or bl, ah
mov ah, bl
xor ah, 1
mov cl, ah
mov ch, ah
and cl, bl
and ch, cl
xor cl, ah
or cl, ch
mov ch, bl
or ch, ah
xor cl, 1
xor ch, 1
mov edx, ecx
and dl, ch
xor ch, cl
mov cl, bl
xor cl, al
or ch, dl
and cl, bl
and bl, al
xor al, 1
or bh, al
mov edx, eax
xor cl, 1
xor bh, 1
and dl, bh
xor bh, al
and al, ah
or bl, al
mov eax, ecx
or bh, dl
mov edx, 0x64c737ac
xor bl, 1
xor bh, ch
xor al, bl
or bl, cl
xor bh, 1
xor bl, 1
or bl, al
mov eax, ebx
xor al, 1
and bl, al
mov ecx, eax
and cl, bl
xor bl, al
or bl, cl
mov cl, bh
xor bl, 1
or cl, bl
xor bl, bh
mov eax, ecx
xor al, bl
test al, 1
mov eax, 0x931ac39f
cmovne edx, eax
test bl, 1
mov ebx, 0x64c737ac
mov eax, edx
cmovne eax, ebx
test cl, 1
cmovne eax, edx
cmp eax, 0xcda5a577
jle 0x40c95b
jmp 0x40ca40
mov eax, 0x64c737ac
cmp eax, 0xcda5a577
jle 0x40c95b
nop dword [eax]
cmp eax, 0xcda5a578
je 0x40d4e3
cmp eax, 0x64c737ac
jne 0x40c950
mov eax, esi
cmp eax, 0xcda5a577
jle 0x40c95b
jmp 0x40ca40
cmp eax, 0x2ce24710
jne 0x40d899
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
inc eax
mov dword [esp + 0x30], eax
push dword [esp + 0x30]
call fcn.0040e380
mov dword [esp + 0x34], eax
mov ecx, 0x595dce8
mov edx, 0xebd8a87
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x34]
cmp eax, 0x3fffffff
cmova ecx, edx
mov edx, 0x6904e2a1
cmp edx, 0x595dce8
je 0x40cada
cmp edx, 0x6904e2a1
je 0x40cad0
cmp edx, 0xebd8a87
jne 0x40caa9
jmp 0x40d98c
mov edx, ecx
cmp edx, 0x595dce8
jne 0x40cab1
shl eax, 2
push eax
call fcn.0040a980
add esp, 4
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
shl eax, 2
add eax, dword [esp + 0x38]
mov dword [esp + 0x3c], eax
mov esi, dword [esp + 0x3c]
mov eax, dword [0x425fcc]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
mov edi, ecx
and ecx, 0xa34a1dc3
not eax
and edi, 0x663237f3
mov edx, eax
mov ebp, eax
and eax, 0x5cb5e23c
and edx, 0x99cdc80c
or ebp, 0xbebf0fce
or eax, ecx
mov ecx, dword [0x425fd0]
or edi, edx
mov edx, ebp
and ebp, 0x17a5618
mov ebx, edi
xor edi, 0x80008
not edx
xor ebx, 0x260001c2
or edi, 0x1405010
and edx, 0x4000a021
and edi, 0x17a5618
and ebx, 0xbe8509c6
or edx, ebp
or ebx, edi
xor edx, ebx
mov edi, edx
and edx, 0x5f3b6c3a
not edi
and edi, 0xa0c493c5
or edx, edi
mov edi, edx
xor edx, 0x1e7b9c0a
xor edi, 0x40846234
mov ebx, edx
and ebx, 0xa34a1dc3
and edi, 0x5cb5e23c
or edi, ebx
xor eax, edi
mov edi, 0xcda5a578
not eax
or eax, edx
cmp eax, 0xffffffff
sete al
setne dl
sete byte [esp + 0x54]
cmp ecx, 0xa
setl cl
setl byte [esp + 0x58]
mov ah, cl
xor dl, cl
or ah, al
xor dl, 1
xor ah, 1
or ah, dl
mov edx, eax
xor dl, cl
and al, dl
and dl, cl
xor al, 1
xor dl, 1
mov ecx, eax
xor cl, dl
or dl, al
xor dl, 1
or dl, cl
mov al, dl
mov ecx, edx
xor al, 1
and cl, al
mov ch, cl
xor cl, dl
and ch, dl
mov dl, ah
or cl, ch
and dl, al
xor al, ah
xor cl, ah
or al, dl
mov edx, ecx
xor dl, al
test al, 1
mov eax, 0x931ac39f
cmovne edi, eax
test cl, 1
not dl
cmovne edi, eax
test dl, 1
mov eax, 0xcda5a578
cmove edi, eax
mov eax, 0xcbfcade7
nop dword [eax]
cmp eax, 0xcda5a577
jg 0x40cd50
cmp eax, 0x931ac39f
je 0x40cd32
cmp eax, 0xcbfcade7
jne 0x40cc30
movzx ecx, byte [esp + 0x54]
mov bh, byte [esp + 0x58]
mov eax, ecx
mov ah, cl
mov dh, cl
mov dl, bh
xor al, 1
xor dl, 1
mov bl, al
mov ch, al
mov byte [esp], al
or bl, cl
and ah, ch
mov al, bl
and dh, ah
xor ah, cl
mov ch, bl
xor al, 1
or ah, dh
mov dh, bl
and ch, al
or al, byte [esp]
and dh, ch
xor ch, bl
xor bl, cl
or cl, bh
or ch, dh
mov dh, ah
xor dh, 1
and dh, ch
xor ch, 1
xor al, 1
and ch, ah
or al, bl
mov ah, dl
or ch, dh
xor al, 1
or ah, bh
mov bl, ch
mov dh, ah
and bl, al
xor al, ch
mov ch, bh
xor dh, 1
or al, bl
and ch, dl
mov bl, bh
xor dl, byte [esp]
and bl, ch
xor ch, bh
or ch, bl
mov bl, ch
and ch, dh
mov dh, bh
xor bl, 1
and dh, ah
and bl, ah
xor ah, bh
or ah, dh
or ch, bl
mov ebx, 0x64c737ac
xor ah, 1
mov dh, ch
and dh, ah
xor ah, ch
or ah, dh
xor ah, al
mov al, cl
xor al, dl
xor dl, 1
or dl, cl
xor al, 1
mov cl, ah
xor dl, 1
xor cl, 1
or dl, al
mov al, dl
xor al, 1
and al, cl
or cl, dl
and dl, ah
or dl, al
mov eax, 0x931ac39f
mov ch, dl
xor ch, cl
test dl, 1
mov edx, 0x931ac39f
cmovne eax, ebx
test cl, 1
cmovne eax, edx
test ch, 1
cmove eax, ebx
cmp eax, 0xcda5a577
jle 0x40cc3b
jmp 0x40cd50
mov eax, 0x64c737ac
cmp eax, 0xcda5a577
jle 0x40cc3b
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0xcda5a578
je 0x40d767
cmp eax, 0x64c737ac
jne 0x40cc30
mov eax, edi
cmp eax, 0xcda5a577
jle 0x40cc3b
jmp 0x40cd50
mov eax, dword [0x425fc4]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
mov esi, ecx
not eax
and esi, 0x18074
mov edx, eax
and eax, 0xb825d74c
and edx, 0x88a65400
or esi, edx
mov edx, ecx
xor esi, 0x18074
and edx, 0x77582b8b
or edx, esi
mov esi, edx
and edx, 0x88a7d475
not esi
and esi, 0x77582b8a
or edx, esi
mov esi, edx
mov edi, edx
or edx, ecx
and ecx, 0x47da28b3
not esi
and edi, 0x47da28b3
or eax, ecx
not edx
and esi, 0xb825d74c
or esi, edi
mov edi, 0x2ce24710
xor eax, esi
mov esi, dword [0x425fc8]
or edx, eax
cmp edx, 0xffffffff
setne ah
sete cl
cmp esi, 0xa
mov ch, ah
setl dl
cmp esi, 9
mov esi, 0xeceb55bb
setg al
xor ch, cl
and dl, ah
and ch, ah
mov ah, al
mov dh, ch
mov bl, ch
xor ah, cl
xor dh, 1
and ah, al
or dh, ch
xor dh, 1
and bl, dh
xor dh, ch
or dh, bl
mov ch, dh
xor ch, 1
and ch, dh
mov bl, ch
xor ch, dh
and bl, dh
or ch, bl
xor ch, al
and al, cl
mov cl, ah
or al, dl
xor cl, 1
xor ch, 1
xor ah, al
xor al, 1
or al, cl
mov cl, ch
xor al, 1
or al, ah
or cl, al
xor al, ch
mov edx, ecx
xor dl, al
test dl, 1
cmovne edi, esi
test al, 1
mov esi, 0x2ce24710
mov eax, edi
cmovne eax, esi
test cl, 1
cmovne eax, edi
cmp eax, 0xdec506d6
jg 0x40c43b
nop word [eax + eax]
cmp eax, 0xaccd878f
jg 0x40cec0
cmp eax, 0x83191ca0
je 0x40d043
cmp eax, 0x84f4bc90
je 0x40d495
cmp eax, 0x938b90e7
jne 0x40c430
cmp byte [esp + 0x2f], 0
mov eax, 0x2f22ff5
mov ecx, 0xaccd8790
jmp 0x40d4c2
cmp eax, 0xaccd8790
je 0x40d0d1
cmp eax, 0xd4757829
je 0x40d4b3
cmp eax, 0xd7eec805
je 0x40d8b0
jmp 0x40c430
mov ecx, dword [esp + 0xc]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x74]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax]
sub edx, eax
sar edx, 2
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x20]
mov edx, dword [edx]
sub edx, eax
sar edx, 2
mov dword [esp + 0x28], edx
call fcn.0040d9a0
mov ecx, dword [esp + 0x28]
cmp ecx, eax
mov eax, dword [0x425fc4]
sete byte [esp + 0x2f]
lea ecx, [eax - 1]
imul ecx, eax
mov edx, ecx
mov esi, ecx
not edx
and esi, 0x68c10306
mov eax, edx
and edx, 0xeb74e2b9
and eax, 0x831eec80
or esi, eax
mov eax, ecx
xor eax, 0xebdfef86
xor esi, 0x68c10306
and eax, ecx
mov edi, esi
and ecx, 0x148b1d46
and edi, eax
xor eax, esi
or ecx, edx
or eax, edi
mov edx, ecx
xor ecx, 0xeb74e2b9
mov esi, eax
and eax, 0xebdfef87
xor edx, 0x801c00
not esi
and edx, 0x23903eb9
and esi, 0x14201078
or eax, esi
mov esi, eax
and eax, 0xfec9f72b
not esi
and esi, 0x13608d4
or eax, esi
mov esi, eax
xor eax, 0x13608d4
mov edi, eax
xor esi, 0x22803629
or eax, ecx
and ecx, 0xdc6fc146
and edi, 0xdc6fc146
and esi, 0x23903eb9
or edx, ecx
not eax
or esi, edi
mov edi, 0x938b90e7
xor edx, esi
mov esi, 0x84f4bc90
or eax, edx
mov ecx, eax
and eax, 0x3dfe1003
not ecx
and ecx, 0xc201effc
or eax, ecx
xor eax, 0x3dfe1003
sete al
cmp dword [0x425fc8], 9
setg cl
mov edx, ecx
xor dl, al
mov ah, dl
xor ah, cl
or cl, al
and ah, dl
not dl
xor cl, 1
and dl, al
mov al, dl
and al, cl
xor cl, dl
mov dl, ah
or cl, al
mov al, ah
xor al, 1
and al, cl
xor cl, 1
xor dl, cl
and cl, ah
and dl, ah
or cl, al
mov eax, edx
xor al, cl
test al, 1
cmovne esi, edi
test cl, cl
mov eax, esi
cmovne eax, edi
test dl, dl
jmp 0x40d0be
mov dl, byte [esp + 0x16]
mov cl, byte [esp + 0x17]
mov esi, 0xdec506d7
mov eax, edx
xor cl, 1
xor al, 1
mov ch, cl
mov ah, al
xor al, cl
or ch, dl
and ah, cl
xor cl, dl
or al, ah
xor cl, 1
mov ah, al
and cl, dl
mov dl, ch
xor ah, 1
xor dl, cl
xor cl, 1
mov dh, ah
or cl, ch
xor dl, 1
and dh, al
xor cl, 1
mov ch, dh
xor dh, ah
or cl, dl
and ch, ah
or dh, ch
mov ah, dh
xor ah, 1
and ah, cl
xor cl, 1
and dh, cl
or dh, ah
mov ah, al
and ah, cl
xor cl, al
or cl, ah
mov eax, ecx
xor al, dh
test al, 1
mov eax, 0x84f4bc90
cmovne esi, eax
test cl, 1
mov eax, 0xdec506d7
cmovne eax, esi
test dh, 1
cmove eax, esi
cmp eax, 0xdec506d6
jg 0x40c43b
jmp 0x40ce80
mov eax, dword [0x425fc4]
mov esi, 0x46f35c23
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 1
not eax
mov edx, eax
and edx, 0xfffffffe
or ecx, edx
not ecx
mov edx, ecx
xor ecx, eax
and edx, eax
or ecx, edx
cmp ecx, 0xffffffff
sete cl
cmp dword [0x425fc8], 0xa
setl dl
mov eax, edx
mov ah, dl
or al, cl
xor ah, cl
xor al, 1
and cl, ah
or al, ah
and ah, dl
mov edx, ecx
xor cl, ah
xor dl, 1
xor ah, 1
mov ch, al
or ah, dl
xor ch, 1
xor ah, 1
mov dl, ch
or ah, cl
and dl, al
mov cl, ah
mov dh, ah
mov ebx, edx
xor dl, ch
xor cl, 1
and bl, ch
and dh, cl
or dl, bl
mov ch, dh
xor dh, ah
and ch, ah
or dh, ch
xor dh, dl
mov dl, al
and dl, cl
xor cl, al
mov eax, 0x6f28fde3
or cl, dl
mov dl, cl
xor dl, dh
test cl, 1
cmovne eax, esi
test dh, 1
cmove eax, esi
test dl, 1
mov edx, 0x6f28fde3
cmove eax, edx
cmp eax, 0xdec506d6
jg 0x40c43b
jmp 0x40ce80
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0xc]
inc eax
push eax
call fcn.0040e380
mov ecx, dword [esp + 0x18]
cmp eax, 0x3fffffff
mov ecx, 0x595dce8
mov edx, 0xebd8a87
cmova ecx, edx
mov edx, 0x6904e2a1
cmp edx, 0x595dce8
je 0x40d1ea
cmp edx, 0x6904e2a1
je 0x40d1e0
cmp edx, 0xebd8a87
jne 0x40d1bc
jmp 0x40d98c
mov edx, ecx
cmp edx, 0x595dce8
jne 0x40d1c4
shl eax, 2
push eax
call fcn.0040a980
add esp, 4
mov esi, eax
mov ebp, dword [esp + 0x24]
mov eax, dword [0x425fcc]
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
mov edi, ecx
not eax
and edi, 0xcc900802
mov edx, eax
and eax, 0xa96e8a38
and edx, 0x551e0
or edi, edx
mov edx, ecx
xor edx, 0xcc9559e2
xor edi, 0xcc900802
and edx, ecx
mov ebx, edi
and ebx, edx
xor edx, edi
or edx, ebx
mov edi, edx
and edx, 0x3ceb3589
not edi
and edi, 0xc314ca76
or edx, edi
mov edi, edx
xor edx, 0x9008210
xor edi, 0xf07e6c6a
and edx, 0xa96e8a38
mov ebx, edi
or edi, ecx
and ecx, 0x569175c7
and ebx, 0x569175c7
or eax, ecx
not edi
or edx, ebx
xor eax, edx
or edi, eax
mov eax, dword [0x425fd0]
cmp edi, 0xffffffff
mov edi, 0x931ac39f
sete cl
setne dl
sete byte [esp + 0x54]
cmp eax, 0xa
setl ah
setl byte [esp + 0x58]
mov ch, ah
mov al, ah
xor ch, dl
or dl, ah
or al, cl
xor cl, ah
xor dl, 1
and cl, ah
xor ch, 1
xor al, 1
mov ah, dl
or al, ch
and ah, cl
xor cl, dl
or cl, ah
mov edx, ecx
mov ah, cl
xor dl, 1
and ah, dl
mov ch, ah
xor ah, cl
mov cl, al
xor ch, 1
and cl, dl
or ch, dl
xor dl, al
xor ch, 1
or dl, cl
or ch, ah
xor ch, al
mov eax, edx
xor ch, 1
xor al, ch
test al, 1
mov eax, 0xcda5a578
cmovne eax, edi
test dl, 1
mov edi, 0xcda5a578
cmovne edi, eax
test ch, 1
cmove edi, eax
mov eax, 0xcbfcade7
nop word cs:[eax + eax]
nop
cmp eax, 0xcda5a577
jg 0x40d470
cmp eax, 0x931ac39f
je 0x40d454
cmp eax, 0xcbfcade7
jne 0x40d310
movzx edx, byte [esp + 0x54]
mov byte [esp], dl
mov ch, dl
movzx eax, byte [esp + 0x58]
xor ch, 1
mov byte [esp + 8], ch
mov ebx, eax
mov bh, al
mov cl, al
xor bl, 1
xor bh, bl
and bl, al
xor bl, 1
and bh, al
xor cl, bl
or bl, al
xor bl, 1
or bl, cl
mov cl, dl
xor cl, ch
or ch, dl
mov dh, ch
and cl, dl
mov ah, ch
xor dh, 1
mov dl, cl
mov byte [esp + 7], dh
and ah, dh
mov dh, ch
xor dl, 1
and dh, ah
xor ah, ch
mov al, dl
or ah, dh
mov dh, dl
and dh, cl
or cl, byte [esp + 7]
and al, dh
xor dh, dl
xor dl, ch
or dh, al
mov al, ah
xor al, 1
and al, dh
xor dh, 1
xor cl, 1
and dh, ah
or cl, dl
mov ah, byte [esp + 8]
or dh, al
xor dh, 1
mov dl, dh
or dh, cl
xor dl, cl
mov cl, bh
xor dh, 1
mov al, ah
xor cl, 1
or dh, dl
xor al, bl
or bh, cl
mov dl, cl
xor dl, bh
or bh, cl
mov ecx, ebx
xor bh, 1
xor cl, 1
or bh, dl
and cl, bl
xor bh, dh
mov dh, byte [esp]
mov dl, cl
xor cl, bl
and dl, bl
or bl, ah
xor bl, 1
or cl, dl
mov dl, bh
or bl, al
xor dl, 1
and ah, dh
xor bl, 1
xor ah, 1
mov ch, ah
or ah, dh
xor ch, dh
xor ah, 1
or ah, ch
xor cl, ah
mov eax, ecx
and al, bl
xor bl, cl
or bl, al
mov eax, ebx
xor al, 1
and bl, al
mov ecx, eax
and cl, bl
xor bl, al
or bl, cl
mov eax, ebx
and bl, dl
xor al, 1
or dl, al
and al, bh
or al, bl
mov ecx, edx
mov ebx, 0x64c737ac
xor cl, al
test al, 1
mov eax, 0x931ac39f
cmovne eax, ebx
test dl, 1
mov edx, 0x931ac39f
cmovne eax, edx
test cl, 1
cmove eax, ebx
cmp eax, 0xcda5a577
jle 0x40d31b
jmp 0x40d470
mov eax, 0x64c737ac
cmp eax, 0xcda5a577
jle 0x40d31b
nop word cs:[eax + eax]
nop
cmp eax, 0xcda5a578
je 0x40d741
cmp eax, 0x64c737ac
jne 0x40d310
mov eax, edi
cmp eax, 0xcda5a577
jle 0x40d31b
jmp 0x40d470
mov ecx, dword [esp + 0xc]
call fcn.0040d9a0
mov eax, 0xdec506d7
cmp eax, 0xdec506d6
jg 0x40c43b
jmp 0x40ce80
cmp byte [esp + 0x47], 0
mov eax, 0xfb3bd31e
mov ecx, 0x177714ed
cmovne eax, ecx
cmp eax, 0xdec506d6
jg 0x40c43b
jmp 0x40ce80
push esi
push dword [esp + 0xc]
push dword [esp + 8]
jmp 0x40d724
push edi
push dword [esp + 0x78]
push dword [esp + 8]
call fcn.0040e770
add esp, 0xc
mov eax, dword [esp + 0x3c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp], eax
mov edx, dword [esp + 0x18]
mov edx, dword [0x425fcc]
lea esi, [edx - 1]
imul esi, edx
mov edi, esi
mov edx, esi
mov ecx, esi
not edi
and edx, 0x1c8906c4
xor ecx, 0xfffffffe
mov ebx, edi
and ecx, esi
and edi, 0x55d38923
and esi, 0xaa2c76dc
and ebx, 0xe376f93b
mov eax, ecx
and ecx, 0xfddebc00
or esi, edi
or edx, ebx
not eax
mov ebx, edx
xor edx, 0xe376f93a
or edx, 1
xor ebx, 0x1c880400
mov ebp, edx
or edx, eax
and eax, 0x22143ff
and ebx, 0xfddebc00
and ebp, 0x22143ff
or ecx, eax
not edx
or ebx, ebp
xor ecx, ebx
or edx, ecx
mov ecx, esi
xor esi, 0x55d38923
mov eax, edx
mov edi, edx
xor ecx, 0xa0241090
or edx, esi
and esi, 0x4a1aef4c
not eax
and ecx, 0xb5e510b3
and edi, 0x4a1aef4c
not edx
and eax, 0xb5e510b3
or ecx, esi
mov esi, 0xcda5a578
or eax, edi
xor ecx, eax
or edx, ecx
mov ecx, 0x931ac39f
mov eax, edx
and edx, 0x6df1012c
not eax
and eax, 0x920efed3
or edx, eax
mov eax, dword [0x425fd0]
xor edx, 0x6df1012c
setne dh
sete byte [esp + 0x54]
cmp eax, 9
setg dl
cmp eax, 0xa
setl al
setl byte [esp + 0x58]
xor al, dh
mov ah, al
xor ah, dl
xor dl, dh
and ah, al
mov al, dl
xor al, 1
mov dh, ah
mov ebx, eax
xor dh, dl
and bl, dl
xor al, bl
xor bl, 1
or bl, dl
or dl, ah
xor bl, 1
xor dl, 1
or bl, al
or dl, dh
mov al, bl
xor bl, 1
mov bh, dl
and al, ah
xor ah, 1
and bl, ah
or bl, al
xor bh, bl
test bh, 1
cmovne esi, ecx
test dl, dl
mov edx, 0xcda5a578
cmovne edx, esi
test bl, bl
cmove edx, esi
mov esi, 0xcbfcade7
nop word cs:[eax + eax]
nop
cmp esi, 0xcda5a577
jg 0x40d6f0
cmp esi, 0x931ac39f
je 0x40d6d3
cmp esi, 0xcbfcade7
jne 0x40d650
mov bh, byte [esp + 0x54]
mov ah, byte [esp + 0x58]
mov edi, 0x64c737ac
mov esi, 0x931ac39f
mov bl, ah
mov al, bh
mov cl, bh
xor bl, 1
or al, ah
xor cl, ah
xor al, 1
and bl, bh
xor bh, 1
or al, cl
and bh, ah
mov ecx, eax
or bl, bh
mov ah, bl
xor cl, 1
or bl, cl
xor ah, 1
xor cl, ah
xor ah, al
xor bl, 1
or bl, ah
mov eax, ecx
xor al, bl
not al
test al, 1
cmovne edi, esi
test bl, 1
mov esi, 0x64c737ac
cmovne esi, edi
test cl, 1
cmovne esi, edi
cmp esi, 0xcda5a577
jle 0x40d65c
jmp 0x40d6f0
mov esi, 0x64c737ac
cmp esi, 0xcda5a577
jle 0x40d65c
nop word cs:[eax + eax]
nop
cmp esi, 0xcda5a578
je 0x40d714
cmp esi, 0x64c737ac
jne 0x40d650
mov esi, edx
cmp esi, 0xcda5a577
jle 0x40d65c
jmp 0x40d6f0
mov eax, dword [esp + 8]
add eax, 4
push eax
push dword [esp + 4]
push dword [esp + 0x7c]
call fcn.0040e770
add esp, 0xc
mov eax, 0xd7eec805
cmp eax, 0xdec506d6
jg 0x40c43b
jmp 0x40ce80
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
mov dword [esi + ebp*4], eax
mov eax, dword [esp + 0x20]
mov eax, 0x2ce24710
cmp eax, 0xdec506d6
jg 0x40c43b
jmp 0x40ce80
mov eax, dword [esp + 0x18]
mov eax, dword [esp + 0x78]
mov eax, dword [eax]
mov dword [esi], eax
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x74]
mov eax, dword [0x425fc4]
lea ecx, [eax - 1]
sete byte [esp + 0x47]
imul ecx, eax
mov eax, ecx
mov edx, ecx
mov edi, ecx
not eax
xor edi, 0xfffffffe
and edx, 0x6f640172
mov esi, eax
and edi, ecx
and ecx, 0x8b3c177e
and eax, 0x74c3e881
and esi, 0x909bfe8c
mov ebp, edi
and edi, 0x14f0dc81
or eax, ecx
or edx, esi
not ebp
mov esi, edx
xor edx, 0x909bfe8d
mov ebx, edx
xor esi, 0x4600000
or edx, ebp
and ebp, 0xeb0f237e
and ebx, 0xeb0f237e
and esi, 0x14f0dc80
or edi, ebp
not edx
or esi, ebx
xor edi, esi
or edx, edi
mov esi, edx
and edx, 0x74c3e881
not esi
mov edi, esi
and edi, 0x8b3c177e
or edx, edi
mov edi, 0xeceb55bb
xor eax, edx
not eax
or eax, esi
mov esi, 0xd4757829
cmp eax, 0xffffffff
setne dl
sete ah
cmp dword [0x425fc8], 9
setg al
mov ecx, eax
xor cl, ah
not cl
and cl, ah
or ah, al
mov ch, ah
xor ch, cl
xor cl, 1
or cl, ah
mov ah, al
xor al, dl
xor ch, 1
and ah, dl
xor cl, 1
mov dl, ah
or cl, ch
and dl, al
xor al, ah
or al, dl
mov edx, eax
xor dl, 1
and al, dl
mov ah, dl
and ah, al
xor al, dl
or al, ah
xor al, cl
mov edx, eax
mov ch, al
xor dl, 1
and dl, cl
xor ch, dl
test al, 1
mov eax, 0xeceb55bb
cmovne eax, esi
test dl, 1
cmove eax, edi
test ch, 1
cmovne eax, esi
cmp eax, 0xdec506d6
jg 0x40c43b
jmp 0x40ce80
cmp eax, 0x46f35c23
je 0x40d8ab
cmp eax, 0x6f28fde3
jne 0x40c430
call fcn.0040e1d0
mov ebx, dword [esp + 0x30]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov ebp, 0x90456f2e
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
add eax, 8
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x4c]
mov eax, dword [eax]
mov dword [esp + 0x58], eax
mov eax, 0xaddb6f5d
cmp eax, 0x90456f2e
jne 0x40d937
jmp 0x40d959
mov eax, dword [esp + 0x50]
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov eax, dword [eax]
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx]
mov edx, dword [esp + 0x48]
sub eax, ecx
push eax
push ecx
call fcn.00408af0
add esp, 8
mov eax, 0x90456f2e
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp eax, 0x90456f2e
je 0x40d959
cmp eax, 0xca8c52c0
je 0x40d8f4
cmp eax, 0xaddb6f5d
jne 0x40d930
cmp dword [esp + 0x58], 0
mov eax, 0xca8c52c0
cmove eax, ebp
cmp eax, 0x90456f2e
jne 0x40d937
mov eax, dword [esp + 0x4c]
mov dword [eax], edi
lea eax, [edi + ebx*4]
mov ecx, dword [esp + 0x50]
mov dword [ecx], eax
lea eax, [edi + esi*4]
mov ecx, dword [esp + 0x54]
mov dword [ecx], eax
mov esi, dword [esp + 0x3c]
mov ecx, dword [esp + 0x5c]
xor ecx, esp
call fcn.0040ed03
mov eax, esi
add esp, 0x60
pop esi
pop edi
pop ebx
pop ebp
ret 8
call fcn.0040ab60
int3