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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x2a4
mov eax, dword [0x447834]
xor eax, esp
mov dword [esp + 0x2a0], eax
lea eax, [esp + 0x1a0]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x40]
lea eax, [esp + 0xa0]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
mov eax, 0x3aff786
mov dword [esp], 0
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
mov eax, 0x4bd12ce4
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0x321d53f4
jg 0x4011d0
cmp eax, 0xde2ef675
jle 0x4010b0
cmp eax, 0x111cb701
jg 0x40167d
cmp eax, 0x3aff785
jle 0x4016c2
cmp eax, 0x3aff786
je 0x4016dd
cmp eax, 0x81bedd9
jne 0x401060
mov ecx, dword [esp + 0x60]
call fcn.00404cc0
jmp 0x401d8f
cmp eax, 0x90aaeda4
jg 0x40161e
cmp eax, 0x8119b2cc
je 0x4016fc
cmp eax, 0x85862f20
je 0x401955
cmp eax, 0x88c5d063
jne 0x401060
mov eax, dword [esp + 0x7c]
lea ecx, [eax + 1]
sar ecx, 0x1f
shr ecx, 0x18
lea ecx, [eax + ecx + 1]
and ecx, 0xffffff00
neg ecx
lea eax, [eax + ecx + 1]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x4c]
movzx eax, byte [esp + ecx + 0x1a0]
mov edx, dword [esp + 0x80]
add edx, eax
mov ebx, edx
sar ebx, 0x1f
shr ebx, 0x18
add ebx, edx
and ebx, 0xffffff00
sub edx, ebx
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x50]
mov bl, byte [esp + edx + 0x1a0]
mov byte [esp + ecx + 0x1a0], bl
mov byte [esp + edx + 0x1a0], al
movzx ecx, byte [esp + ecx + 0x1a0]
add ecx, eax
mov edx, ecx
mov eax, ecx
xor edx, 0x100
and eax, 0x17
and edx, ecx
not ecx
mov ebx, ecx
not edx
and ebx, 0x29e51de8
lea ebp, [ebx + eax]
lea eax, [ebx + eax + 0x50184000]
xor ebp, 0x29e51d00
and eax, 0x71dc4000
or ebp, 0xff
mov ebx, ebp
or ebp, edx
and edx, 0x8e23bfff
and ebx, 0x8211dff
not ebp
or eax, ebx
xor edx, eax
or ebp, edx
not ebp
mov eax, ebp
xor ebp, ecx
and eax, ecx
mov ecx, 0x51311f63
or ebp, eax
mov eax, 0x734f6d47
not ebp
mov dword [esp + 0x54], ebp
cmp dword [esp + 0x54], 0
cmovg eax, ecx
cmp eax, 0x321d53f4
jle 0x40106b
nop word cs:[eax + eax]
nop dword [eax]
cmp eax, 0x5c71379d
jg 0x4014d0
cmp eax, 0x51311f62
jg 0x40151b
cmp eax, 0x321d53f5
je 0x401802
cmp eax, 0x4138ae27
je 0x401982
cmp eax, 0x4bd12ce4
jne 0x401060
mov ebp, dword [esp + 0x60]
mov eax, dword [0x448510]
lea edi, [eax - 1]
imul edi, eax
mov ecx, edi
mov edx, edi
not ecx
or edx, 0xa2208001
mov ebx, ecx
mov eax, ecx
and edx, 0xb6b0f841
and ecx, 0xe0bea654
and eax, 0x400103ae
or ebx, 0x54917bee
or eax, edx
mov edx, ebx
and ebx, 0xb6b0f841
not edx
and edx, 0x94e0410
or edx, ebx
xor edx, eax
mov eax, edx
and edx, 0x54917bef
not eax
and eax, 0xab6e8410
or edx, eax
mov eax, edx
and edx, 0x7981a9a9
not eax
and eax, 0x867e5656
or edx, eax
mov eax, edx
xor edx, 0x867e5656
mov ebx, edx
xor eax, 0x6080a000
or edx, edi
and edi, 0x1f4159ab
and ebx, 0x1f4159ab
and eax, 0xe0bea654
or ecx, edi
not edx
mov edi, 0xcd339ae
or eax, ebx
xor ecx, eax
mov eax, dword [0x448514]
or edx, ecx
cmp edx, 0xffffffff
setne dl
sete ch
sete byte [esp + 0x90]
cmp eax, 9
setg cl
cmp eax, 0xa
mov al, ch
setl ah
setl byte [esp + 0x94]
xor al, ah
and ch, al
and al, ah
xor ch, 1
xor al, 1
mov ah, ch
xor ah, al
or al, ch
xor al, 1
or al, ah
mov ah, cl
or cl, dl
xor ah, dl
xor cl, 1
mov dh, al
or cl, ah
xor ah, 1
mov dl, ah
xor dl, cl
or cl, ah
xor cl, 1
or cl, dl
mov dl, cl
xor dl, 1
mov ah, dl
and ah, cl
xor dl, ah
xor ah, 1
or ah, cl
mov ecx, eax
xor cl, 1
xor ah, 1
and dh, cl
or ah, dl
mov ch, dh
xor dh, al
and ch, al
or dh, ch
mov al, dh
xor al, 1
and al, ah
xor ah, 1
and dh, ah
or dh, al
mov al, cl
xor cl, ah
and al, ah
or cl, al
mov eax, ecx
xor al, dh
test al, 1
mov eax, 0xb63dc183
cmovne eax, edi
test cl, 1
mov edi, 0xb63dc183
cmovne edi, eax
test dh, 1
cmove edi, eax
mov eax, 0x9f44d7b8
nop
cmp eax, 0xf28faf80
jg 0x4013a0
cmp eax, 0x8402eda9
je 0x4013cc
cmp eax, 0x9f44d7b8
je 0x4013e3
cmp eax, 0xb63dc183
jne 0x401360
cmp byte [esp + 0x98], 0
mov eax, 0x4d33dfba
mov ecx, 0xf28faf81
cmovne eax, ecx
cmp eax, 0xf28faf80
jle 0x401367
nop dword [eax + eax]
cmp eax, 0xcd339ae
je 0x4013be
cmp eax, 0x4d33dfba
je 0x401d83
cmp eax, 0xf28faf81
jne 0x401360
jmp 0x401dd2
mov eax, 0x8402eda9
cmp eax, 0xf28faf80
jle 0x401367
jmp 0x4013a0
cmp dword [ebp + 4], 0
mov eax, edi
setne byte [esp + 0x98]
cmp eax, 0xf28faf80
jle 0x401367
jmp 0x4013a0
movzx ecx, byte [esp + 0x90]
movzx eax, byte [esp + 0x94]
mov ch, cl
mov bh, al
xor ch, 1
xor bh, 1
mov dl, ch
mov ah, ch
and dl, cl
xor ah, dl
xor dl, 1
or dl, cl
xor dl, 1
or dl, ah
mov ah, bh
mov dh, dl
or ah, al
xor dh, 1
mov bl, ah
or dl, dh
xor bl, 1
xor cl, dl
or dl, ch
and bl, bh
mov ch, cl
xor ch, dl
or dl, cl
mov cl, dh
xor dh, al
or cl, al
and al, ah
or ah, bh
xor dl, 1
or bl, al
mov al, ah
or dl, ch
xor cl, 1
xor al, bl
xor bl, 1
or bl, ah
xor al, 1
xor bl, 1
or bl, al
mov eax, edx
xor al, 1
mov ah, bl
xor ah, 1
and dl, al
mov ch, al
and ch, dl
xor dl, al
and bl, ah
mov al, ah
and al, bl
xor bl, ah
or dl, ch
or bl, al
mov eax, ecx
and al, dh
xor dh, cl
xor bl, dl
or dh, al
mov ecx, ebx
mov al, dh
xor cl, 1
and bl, dh
xor al, 1
and al, cl
or bl, al
mov eax, ecx
xor cl, dh
and al, dh
mov edx, 0x8402eda9
or cl, al
mov eax, ecx
xor al, bl
test al, 1
mov eax, 0xcd339ae
cmovne edx, eax
test cl, 1
mov eax, 0x8402eda9
cmovne eax, edx
test bl, 1
cmove eax, edx
cmp eax, 0xf28faf80
jle 0x401367
jmp 0x4013a0
cmp eax, 0x6c7b1d49
jg 0x401560
cmp eax, 0x5c71379e
je 0x40183d
cmp eax, 0x5cbbb3c7
je 0x4019b0
cmp eax, 0x653c9c93
jne 0x401060
mov eax, 0x543bd5cf
mov dword [esp + 0xc], 0
xor esi, esi
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
cmp eax, 0x51311f63
je 0x401876
cmp eax, 0x53bdb095
je 0x401b00
cmp eax, 0x543bd5cf
jne 0x401060
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], esi
mov ecx, 0x1a49a892
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x70]
cmp eax, 0x100
mov eax, 0x5c71379e
jmp 0x40199d
cmp eax, 0x6c7b1d4a
je 0x4018b7
cmp eax, 0x6d344e6a
je 0x401bc8
cmp eax, 0x734f6d47
jne 0x401060
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [eax], edx
mov dword [eax + 4], ecx
push 8
call fcn.00417859
add esp, 4
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x60]
mov dword [eax], 0
mov dword [eax + 4], 0
push dword [esp + 0x60]
push str.__:__P
call fcn.00404880
add esp, 8
lea edx, [esp + 0x1c]
lea ecx, [esp + 0x1a0]
mov dword [esp + 0x64], edx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x54]
add eax, ecx
mov ecx, edx
mov dword [esp + 0x68], eax
push dword [esp + 0x68]
call fcn.004048e0
mov eax, dword [esp + 0x20]
mov ecx, 0xaae7a5ac
cmp eax, dword [esp + 0x1c]
mov eax, 0x111cb702
jmp 0x401bec
cmp eax, 0x90aaeda5
je 0x401904
cmp eax, 0xaae7a5ac
je 0x401bdd
cmp eax, 0xd06ba776
jne 0x401060
lea ecx, [esp + 0x1c]
call fcn.004170a0
mov eax, dword [esp + 0x64]
mov eax, dword [esp + 0x84]
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x18], eax
mov eax, 0x321d53f5
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x10], ecx
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
cmp eax, 0x111cb702
je 0x401c3e
cmp eax, 0x1a49a892
je 0x401d1e
cmp eax, 0x27864b1a
jne 0x401060
mov eax, dword [esp + 4]
mov ecx, 0x5cbbb3c7
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x88]
cmp eax, 0x64
mov eax, 0x8119b2cc
jmp 0x40199d
cmp eax, 0xde2ef676
je 0x40104e
cmp eax, 0xe693e6da
jne 0x401060
jmp 0x401da4
mov eax, dword [esp]
mov ecx, 0x6c7b1d4a
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x6c]
cmp eax, 0x100
mov eax, 0x653c9c93
jmp 0x40199d
push str.IOS_BASE:
push 0x4492b0
call fcn.00401de0
add esp, 8
mov edx, dword [esp + 0x4c]
mov ecx, eax
shl edx, 2
push edx
call fcn.00403dc0
mov ebp, eax
mov eax, dword [eax]
mov eax, dword [eax + 4]
mov eax, dword [ebp + eax + 0x30]
mov ecx, dword [eax + 4]
mov dword [esp + 0x9c], ecx
mov eax, dword [ecx]
call dword [eax + 4]
lea eax, [esp + 0x98]
push eax
call fcn.00411590
add esp, 4
mov edx, dword [eax]
mov ecx, eax
push 0xa
call dword [edx + 0x20]
mov ebx, eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x90], eax
mov eax, 0x28128096
nop word cs:[eax + eax]
nop
cmp eax, 0x1abd29a8
jg 0x4017b0
cmp eax, 0x870319bf
je 0x401921
cmp eax, 0xfdba0446
jne 0x401770
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
mov eax, dword [eax]
mov ecx, dword [esp + 0x94]
push 1
call eax
mov eax, 0x870319bf
cmp eax, 0x1abd29a8
jle 0x401777
nop dword [eax + eax]
cmp eax, 0x1abd29a9
je 0x4017cd
cmp eax, 0x28128096
jne 0x401770
cmp dword [esp + 0x90], 0
mov eax, 0x1abd29a9
jmp 0x4017ed
mov ecx, dword [esp + 0x90]
mov eax, dword [ecx]
call dword [eax + 8]
mov dword [esp + 0x94], eax
mov eax, 0xfdba0446
cmp dword [esp + 0x94], 0
mov ecx, 0x870319bf
cmove eax, ecx
cmp eax, 0x1abd29a8
jle 0x401777
jmp 0x4017b0
mov eax, dword [esp + 0x18]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x84]
cmp ecx, dword [eax + 4]
mov eax, 0xe693e6da
mov ecx, 0x88c5d063
jmp 0x40199d
lea eax, [esp + 0x34]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov eax, 0x90aaeda5
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
lea eax, [esp + 0x28]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov eax, 0x27864b1a
mov dword [esp + 4], 0
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x6c]
mov byte [esp + ecx + 0x1a0], al
mov eax, dword [esp + 0x6c]
cdq
idiv dword [esp + 0x2c4]
mov eax, dword [esp + 0x2c0]
mov al, byte [eax + edx]
mov ecx, dword [esp + 0x6c]
mov byte [esp + ecx + 0xa0], al
mov eax, dword [esp + 0x6c]
inc eax
mov dword [esp], eax
mov eax, 0x3aff786
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
mov eax, 0x4138ae27
mov dword [esp + 8], 0
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
movsx eax, bl
mov ecx, ebp
push eax
call fcn.004168d0
mov ecx, ebp
call fcn.00409d20
lea ecx, [esp + 0x28]
call fcn.00408bd0
mov eax, dword [esp + 0x58]
mov eax, 0x734f6d47
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
mov eax, 0x321d53f5
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
mov eax, dword [esp + 8]
mov ecx, 0x53bdb095
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x78]
cmp eax, 0x3e9
mov eax, 0x6d344e6a
cmovl eax, ecx
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
mov ecx, dword [esp + 0x54]
mov eax, ecx
mov edi, ecx
and ecx, 0xfffffffa
not eax
and edi, 0x2fcc3681
mov edx, eax
and edx, 0xd033c97e
or edi, edx
mov edx, edi
xor edi, 0x2fcc3681
xor edx, 0xd033c97b
and edi, edx
mov edx, eax
and edx, 5
or ecx, edx
xor eax, ecx
and eax, ecx
mov ecx, edi
mov edx, eax
not ecx
not edx
and eax, ecx
or ecx, edx
and edx, edi
or edx, eax
mov ebx, ecx
mov edi, ecx
mov eax, edx
not ebx
and edi, 0x2fa090a9
and edx, 0xd05f6f56
not eax
and ebx, 0xd05f6f56
or ecx, eax
and eax, 0x2fa090a9
or ebx, edi
or edx, eax
not ecx
lea eax, [esp + 0x2c]
xor edx, ebx
mov dword [esp + 0x94], eax
or ecx, edx
mov dword [esp + 0x90], ecx
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
cmp eax, dword [esp + 0x30]
mov eax, 0x7b721c4e
setne byte [esp + 0x8f]
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp eax, 0x48c84ce2
jg 0x401aa0
cmp eax, 0xf1c1a979
je 0x401bff
cmp eax, 0x3c49f2a
jne 0x401a60
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x28]
push dword [esp + 0x98]
push dword [eax]
call fcn.004095c0
jmp 0x401aee
cmp eax, 0x48c84ce3
je 0x401ada
cmp eax, 0x7b721c4e
jne 0x401a60
lea eax, [esp + 0x90]
mov ecx, 0x48c84ce3
mov dword [esp + 0x98], eax
mov eax, 0x3c49f2a
cmp byte [esp + 0x8f], 0
cmovne eax, ecx
cmp eax, 0x48c84ce2
jle 0x401a67
jmp 0x401aa0
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax]
mov dword [ecx], eax
add dword [esp + 0x2c], 4
mov eax, 0xf1c1a979
cmp eax, 0x48c84ce2
jle 0x401a67
jmp 0x401aa0
lea eax, [esp + 0x38]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x94]
mov eax, dword [eax]
cmp eax, dword [esp + 0x3c]
mov eax, 0x4c473118
setne byte [esp + 0x90]
nop word cs:[eax + eax]
nop
cmp eax, 0x6042acd3
jg 0x401b90
cmp eax, 0xb72f6aa2
je 0x401b71
cmp eax, 0x4c473118
jne 0x401b30
lea eax, [esp + 0x2bc]
mov ecx, 0x6567e852
mov dword [esp + 0x98], eax
mov eax, 0xb72f6aa2
cmp byte [esp + 0x90], 0
cmovne eax, ecx
cmp eax, 0x6042acd3
jle 0x401b37
jmp 0x401b90
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x34]
push dword [esp + 0x98]
push dword [eax]
call fcn.00408de0
jmp 0x401bb6
cmp eax, 0x6042acd4
je 0x401c20
cmp eax, 0x6567e852
jne 0x401b30
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x38]
mov eax, dword [eax]
mov dword [ecx], eax
add dword [esp + 0x38], 4
mov eax, 0x6042acd4
cmp eax, 0x6042acd3
jle 0x401b37
jmp 0x401b90
mov eax, 0x85862f20
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
cmp dword [esp + 0x60], 0
mov eax, 0xde2ef676
mov ecx, 0x81bedd9
cmove eax, ecx
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
mov eax, dword [esp + 0x88]
inc eax
mov dword [esp + 4], eax
mov eax, 0x27864b1a
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
mov eax, dword [esp + 0x78]
inc eax
mov dword [esp + 8], eax
mov eax, 0x4138ae27
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
mov eax, dword [esp + 0x68]
mov edi, dword [esp + 0x2b8]
mov bh, byte [eax]
mov ebp, dword [esp + 0x84]
mov dh, bh
mov bl, bh
mov cl, bh
mov ch, byte [edi + ebp]
xor dh, 0xc3
and bl, 0x4f
and dh, bh
not bh
mov al, bh
and bh, 0xc3
mov ah, bh
mov dl, ch
and al, 0xb0
and ah, dh
xor dh, bh
and dl, 0xa8
or al, bl
or dh, ah
mov ah, dh
and dh, 0x63
not ah
and ah, 0x9c
or dh, ah
mov ah, dh
and dh, 0x1f
xor ah, 0x40
and ah, 0xe0
or dh, ah
mov ah, dh
xor dh, 0xe0
and dh, ch
not ch
xor ah, 0x1f
and ah, ch
or dh, ah
not dh
or dh, ch
and ch, 0x57
or dl, ch
mov ah, dl
xor dl, 0x44
xor ah, 0x28
and dl, 0xc4
and ah, 0x3b
or ah, dl
mov dl, ah
xor ah, 0x30
xor dl, 0xc4
and ah, 0xb0
or cl, dl
and dl, 0x4f
or ah, dl
not cl
mov dl, dh
xor ah, al
not dl
or cl, ah
mov eax, ecx
and dl, cl
or cl, dh
not al
mov ah, cl
and dh, al
not ah
or dh, dl
mov dl, cl
and ah, 0x14
mov al, dh
and dl, 0xeb
and dh, 0x14
not al
or ah, dl
or cl, al
and al, 0xeb
or dh, al
not cl
xor dh, ah
mov eax, 0xaae7a5ac
or cl, dh
mov byte [edi + ebp], cl
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
mov ecx, dword [esp + 0x70]
movzx eax, byte [esp + ecx + 0x1a0]
mov edx, eax
add edx, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
movzx esi, byte [esp + esi + 0xa0]
add esi, edx
mov edx, esi
sar edx, 0x1f
shr edx, 0x18
add edx, esi
and edx, 0xffffff00
sub esi, edx
mov dl, byte [esp + esi + 0x1a0]
mov byte [esp + ecx + 0x1a0], dl
mov byte [esp + esi + 0x1a0], al
mov eax, dword [esp + 0x70]
inc eax
mov dword [esp + 0xc], eax
mov eax, 0x543bd5cf
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
push dword [esp + 0x5c]
call fcn.00417889
add esp, 4
mov eax, 0xd06ba776
cmp eax, 0x321d53f4
jle 0x40106b
jmp 0x4011d0
lea ecx, [esp + 0x34]
call fcn.00408bd0
mov eax, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x2a0]
xor ecx, esp
call fcn.004178c4
add esp, 0x2a4
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00425efb
int3