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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x64
mov eax, dword [0x44e82c]
mov ecx, dword [esp + 0x78]
mov edi, 0xa45fe795
xor eax, esp
mov dword [esp + 0x60], eax
mov eax, dword [ecx + 0x3c]
mov eax, dword [eax + ecx + 0x78]
add eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x20]
add eax, ecx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 8], 0
mov dword [esp], 0
mov eax, dword [eax + 0x18]
mov dword [esp + 0x1c], eax
mov eax, 0x25f0db1d
cmp eax, 0x2b1d2259
jle 0x4035f7
jmp 0x403660
mov eax, dword [esp + 0x40]
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x40]
mov dword [eax + 0x14], 0xf
mov eax, dword [esp + 0x40]
mov byte [eax], 0
mov eax, dword [esp + 0x20]
mov eax, dword [esp + 0x38]
mov eax, 0x54336fc8
nop word [eax + eax]
cmp eax, 0x2b1d2259
jg 0x403660
cmp eax, 0xf3e9a049
jle 0x4036c0
cmp eax, 0xf3e9a04a
je 0x40389c
cmp eax, 0xef6d408
je 0x4038b9
cmp eax, 0x25f0db1d
jne 0x4035f0
mov eax, dword [esp + 0xc]
mov edx, 0x64073d93
mov dword [esp + 0x28], eax
mov eax, dword [esp + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [esp]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x2c]
cmp ecx, eax
mov eax, 0xf3e9a04a
cmovb eax, edx
cmp eax, 0x2b1d2259
jle 0x4035f7
nop word cs:[eax + eax]
nop
cmp eax, 0x5eb7f919
jle 0x4036f0
cmp eax, 0x5eb7f91a
je 0x4038e6
cmp eax, 0x64073d93
je 0x403b03
cmp eax, 0x78e810ad
jne 0x4035f0
mov esi, dword [esp + 0x28]
mov dword [esp + 0x14], 0
mov eax, 0x8d4d8a48
mov ecx, dword [esp + 0x30]
add esi, 4
mov dword [esp + 0x10], ecx
cmp eax, 0x2b1d2259
jle 0x4035f7
jmp 0x403660
cmp eax, 0x8d4d8a48
je 0x403b72
cmp eax, 0xa1451cdb
je 0x403c0c
cmp eax, 0xb5da6e26
jne 0x4035f0
jmp 0x403d21
cmp eax, 0x2b1d225a
je 0x403c54
cmp eax, 0x54336fc8
jne 0x4035f0
lea eax, [esp + 0x48]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov eax, 0x5c86573e
nop word [eax + eax]
cmp eax, 0xabac62fb
je 0x403854
cmp eax, 0xeb4c9b95
je 0x403c7e
cmp eax, 0x5c86573e
jne 0x403720
mov eax, dword [esp + 0x40]
mov ecx, dword [0x44f540]
mov edx, dword [0x44f544]
lea ebx, [ecx - 1]
imul ebx, ecx
mov ecx, ebx
and ebx, 0x5ca1591e
not ecx
mov ebp, ecx
and ecx, 0xfffffffe
and ebp, 0xa35ea6e1
or ebp, ebx
xor ebp, 0xa35ea6e0
or ecx, ebp
mov ebp, 0xdb26e4c3
cmp ecx, 0xffffffff
sete cl
setne ch
sete byte [esp + 0x45]
cmp edx, 9
setg bl
cmp edx, 0xa
setl dl
setl byte [esp + 0x46]
or bl, ch
xor dl, cl
mov dh, bl
mov ecx, 0xa45fe795
xor dh, dl
test dl, dl
cmovne ecx, ebp
test bl, bl
cmovne ecx, edi
test dh, dh
mov edx, 0xb6ec62b
cmove ecx, ebp
nop word [eax + eax]
cmp edx, 0xb6ec62a
jg 0x4037e0
cmp edx, 0xa45fe795
je 0x40382c
cmp edx, 0xdb26e4c3
jne 0x4037c0
jmp 0x40387d
cmp edx, 0x39fa579a
je 0x40383b
cmp edx, 0xb6ec62b
jne 0x4037c0
movzx edx, byte [esp + 0x45]
mov dh, byte [esp + 0x46]
mov ebp, 0x39fa579a
xor dh, dl
mov bl, dh
xor bl, 1
and bl, dl
mov bh, bl
xor bh, dh
test dh, 1
mov edx, 0xa45fe795
cmovne edx, ebp
test bl, 1
cmove edx, edi
test bh, 1
cmovne edx, ebp
cmp edx, 0xb6ec62a
jle 0x4037c8
jmp 0x4037e0
mov edx, 0x39fa579a
cmp edx, 0xb6ec62a
jle 0x4037c8
jmp 0x4037e0
cmp dword [eax + 0x14], 0xf
mov edx, ecx
seta byte [esp + 0x47]
cmp edx, 0xb6ec62a
jle 0x4037c8
jmp 0x4037e0
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx + 0x14]
inc ecx
push ecx
push dword [eax]
call fcn.00405670
add esp, 8
mov eax, 0xeb4c9b95
cmp eax, 0xabac62fb
jne 0x40372b
jmp 0x403854
cmp byte [esp + 0x47], 0
mov eax, 0xeb4c9b95
mov ecx, 0xabac62fb
cmovne eax, ecx
cmp eax, 0xabac62fb
jne 0x40372b
jmp 0x403854
mov ecx, dword [esp + 0x30]
mov eax, 0xb5da6e26
mov dword [esp + 4], ecx
cmp eax, 0x2b1d2259
jle 0x4035f7
jmp 0x403660
mov eax, dword [esp + 0x2c]
inc eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x3c]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov eax, 0x25f0db1d
cmp eax, 0x2b1d2259
jle 0x4035f7
jmp 0x403660
lea eax, [esp + 0x48]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
mov eax, 0x5c86573e
nop word [eax + eax]
cmp eax, 0xabac62fb
je 0x403abb
cmp eax, 0xeb4c9b95
je 0x4035c0
cmp eax, 0x5c86573e
jne 0x403900
mov ebp, dword [esp + 0x40]
mov ecx, dword [0x44f540]
mov eax, dword [0x44f544]
mov edi, 0xa45fe795
lea edx, [ecx - 1]
imul edx, ecx
mov ecx, edx
and edx, 0x9813520e
not ecx
and ecx, 0x67ecadf1
or edx, ecx
mov ecx, edx
xor edx, 0x23600471
xor ecx, 0x9813520e
and edx, 0xab62047f
mov ebx, ecx
and ecx, 0xfffffffe
and ebx, 0x549dfb80
or ebx, edx
xor ebx, 0x549dfb81
or ecx, ebx
mov ebx, 0xa45fe795
mov edx, ecx
and ecx, 0xf760b72b
not edx
and edx, 0x89f48d4
or ecx, edx
xor ecx, 0xf760b72b
sete cl
setne dl
sete byte [esp + 0x45]
cmp eax, 0xa
setl al
setl byte [esp + 0x46]
mov ah, al
xor dl, al
or al, cl
xor ah, cl
xor al, 1
mov ecx, 0xdb26e4c3
or al, ah
mov ah, dl
xor ah, al
test al, al
cmovne ecx, ebx
test dl, dl
cmovne ecx, ebx
test ah, ah
mov eax, 0xdb26e4c3
cmovne ecx, eax
mov eax, 0xb6ec62b
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0xb6ec62a
jg 0x403a00
cmp eax, 0xa45fe795
je 0x403a8b
cmp eax, 0xdb26e4c3
jne 0x4039e0
jmp 0x403ae4
cmp eax, 0x39fa579a
je 0x403aa0
cmp eax, 0xb6ec62b
jne 0x4039e0
movzx edx, byte [esp + 0x45]
mov bh, byte [esp + 0x46]
mov bl, dl
mov ah, dl
mov dh, bh
xor bl, 1
and ah, bl
mov al, ah
xor ah, dl
or dl, bh
xor bh, 1
xor al, 1
and dh, bh
xor dl, 1
or al, bl
xor dh, 1
xor al, 1
or al, ah
mov ah, dh
or dh, bh
xor ah, bh
xor dh, 1
xor bh, bl
or dh, ah
mov ah, al
or dl, bh
mov ebx, 0x39fa579a
xor ah, 1
and ah, dh
xor dh, 1
and dh, al
mov al, dl
or dh, ah
xor al, dh
test al, 1
mov eax, 0x39fa579a
cmovne ebx, edi
test dl, 1
cmovne eax, ebx
test dh, 1
cmove eax, ebx
cmp eax, 0xb6ec62a
jle 0x4039e7
jmp 0x403a00
mov eax, 0x39fa579a
cmp eax, 0xb6ec62a
jle 0x4039e7
jmp 0x403a00
cmp dword [ebp + 0x14], 0xf
mov eax, ecx
seta byte [esp + 0x47]
cmp eax, 0xb6ec62a
jle 0x4039e7
jmp 0x403a00
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx + 0x14]
inc ecx
push ecx
push dword [eax]
call fcn.00405670
add esp, 8
mov eax, 0xeb4c9b95
cmp eax, 0xabac62fb
jne 0x40390b
jmp 0x403abb
cmp byte [esp + 0x47], 0
mov eax, 0xeb4c9b95
mov ecx, 0xabac62fb
cmovne eax, ecx
cmp eax, 0xabac62fb
jne 0x40390b
jmp 0x403abb
mov eax, dword [esp + 0x28]
lea ebp, [esp + 0x48]
mov ebx, dword [eax]
mov dword [esp + 0x20], ebp
mov eax, dword [esp + 0x20]
mov dword [esp + 0x48], 0
mov dword [esp + 0x5c], 0xf
mov dword [esp + 0x58], 0
add ebx, dword [esp + 0x78]
push ebx
call fcn.0042ca10
add esp, 4
mov ecx, ebp
push eax
push ebx
call fcn.00405c90
push 0x235
push ebp
call fcn.00402de0
add esp, 8
cmp eax, dword [esp + 0x7c]
mov eax, 0x78e810ad
mov ecx, 0xa1451cdb
cmove eax, ecx
cmp eax, 0x2b1d2259
jle 0x4035f7
jmp 0x403660
mov eax, dword [0x44f548]
mov ebx, 0x54336fc8
mov dword [esp + 0x34], esi
lea ecx, [eax - 1]
imul ecx, eax
mov eax, ecx
and ecx, 0x4ee7a9da
not eax
mov edx, eax
and eax, 0xfffffffe
and edx, 0xb1185625
or edx, ecx
mov ecx, dword [0x44f54c]
xor edx, 0xb1185624
or eax, edx
cmp eax, 0xffffffff
sete al
setne dl
cmp ecx, 9
setg dh
cmp ecx, 0xa
setl cl
and dh, al
and dl, cl
or dh, dl
mov dl, cl
or cl, al
xor dl, al
xor cl, 1
or cl, dl
mov eax, ecx
xor al, dh
mov eax, 0x5eb7f91a
cmovne ebx, eax
test cl, cl
mov eax, 0x54336fc8
cmovne eax, ebx
test dh, dh
mov edx, dword [esp + 0x10]
cmove eax, ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], ebx
cmp eax, 0x2b1d2259
jle 0x4035f7
jmp 0x403660
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x78]
mov eax, dword [eax + 0x24]
mov edx, ecx
add eax, ecx
mov ecx, dword [esp + 0x2c]
movzx eax, word [eax + ecx*2]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x14], 2
mov ecx, dword [ecx + 0x1c]
add ecx, edx
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x10], eax
mov eax, 0x8d4d8a48
mov esi, dword [esp + 0x28]
cmp eax, 0x2b1d2259
jle 0x4035f7
jmp 0x403660
cmp byte [esp + 0x27], 0
mov edx, dword [esp + 0x3c]
mov eax, 0xb5da6e26
mov ecx, 0xef6d408
cmovne eax, ecx
mov dword [esp + 4], edx
cmp eax, 0x2b1d2259
jle 0x4035f7
jmp 0x403660
mov eax, dword [esp + 0x40]
mov ebp, 0x5eb7f91a
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x40]
mov dword [eax + 0x14], 0xf
mov eax, dword [esp + 0x40]
mov byte [eax], 0
mov eax, dword [esp + 0x20]
cmp dword [esp + 0x38], 0
mov eax, dword [0x44f548]
mov ecx, dword [0x44f54c]
lea edx, [eax - 1]
sete byte [esp + 0x27]
imul edx, eax
mov eax, edx
and edx, 0xaad73bfc
not eax
mov ebx, eax
and ebx, 0x5528c403
or edx, ebx
mov ebx, 0x2b1d225a
xor edx, 0x5528c402
or edx, eax
cmp edx, 0xffffffff
sete al
setne dl
cmp ecx, 0xa
setl ah
cmp ecx, 9
setg cl
xor ah, al
or cl, dl
mov edx, ecx
xor dl, ah
test ah, ah
mov eax, 0x5eb7f91a
cmovne eax, ebx
test cl, cl
cmovne eax, ebp
test dl, dl
cmove eax, ebx
cmp eax, 0x2b1d2259
jle 0x4035f7
jmp 0x403660
mov esi, dword [esp + 4]
mov ecx, dword [esp + 0x60]
add esi, dword [esp + 0x78]
xor ecx, esp
call fcn.0041e8c8
mov eax, esi
add esp, 0x64
pop esi
pop edi
pop ebx
pop ebp
ret