Function at 0x40fca0
Capabilities:
Inspect section memory permissions
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x2054
call fcn.004261b0
mov edx, dword [esp + 0x2068]
push ebx
mov ebx, dword [esp + 0x205c]
or eax, 0xffffffff
push ebp
push esi
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x206c]
xor ecx, ecx
push edi
mov edi, dword [esp + 0x207c]
test edi, 0xff8f5a6f
lea ebp, [eax + edx]
lea edx, [ebp - 1]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], edx
mov esi, ebx
je 0x40fd0d
pop edi
pop esi
pop ebp
lea eax, [ecx - 3]
pop ebx
add esp, 0x2054
ret
cmp ebx, ecx
je 0x410688
cmp eax, ecx
je 0x410688
cmp dword [esp + 0x2080], ecx
mov eax, dword [esp + 0x2084]
jne 0x40fd35
cmp eax, ecx
jg 0x410688
cmp eax, ecx
jge 0x40fd49
pop edi
pop esi
pop ebp
mov eax, 0xfffffff1
pop ebx
add esp, 0x2054
ret
mov eax, 0x989680
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov eax, dword [ebx + 0x20]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x206c]
cmp eax, ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc4], ecx
je 0x40fdc8
mov edx, dword [eax]
test dl, 1
mov dword [esp + 0x14], edx
je 0x40fd89
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x14]
test dl, 2
je 0x40fd99
mov edx, dword [eax + 8]
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x14]
test dl, 0x10
je 0x40fda9
mov edx, dword [eax + 0x14]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x14]
test dl, 4
je 0x40fdbc
mov edx, dword [eax + 0xc]
mov dword [esp + 0xc4], edx
mov edx, dword [esp + 0x14]
test dl, 8
je 0x40fdc8
mov eax, dword [eax + 0x10]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], ecx
jne 0x40fdd6
mov dword [esp + 0x10], 0x4303e8
cmp dword [ebx], 0x50435245
je 0x40fe22
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0xd4]
push ecx
push edx
lea eax, [esp + 0x104]
push eax
push ebx
call fcn.00411280
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x40fe10
pop edi
lea eax, [esi - 4]
pop esi
pop ebp
pop ebx
add esp, 0x2054
ret
cmp dword [esp + 0x18], 0
je 0x40fe22
lea ecx, [esp + 0xd4]
mov dword [esp + 0x18], ecx
mov eax, dword [esi + 8]
movzx edx, word [esi + 0x1c]
mov ecx, eax
or ecx, edi
shr ecx, 4
and ecx, 1
mov dword [esp + 0x30], ecx
mov ecx, eax
shr eax, 0x12
and eax, 1
mov dword [esp + 0x2c], eax
movzx eax, word [esi + 0x1a]
imul edx, eax
movzx eax, word [esi + 0x18]
add edx, ebx
add eax, edx
mov edx, dword [esp + 0x2074]
shr ecx, 0x1c
and ecx, 1
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x2070]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x2078]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x9c], eax
add eax, edx
mov dword [esp + 0xa0], eax
mov dword [esp + 0xcc], eax
mov eax, dword [esi + 8]
shr eax, 5
and eax, 1
mov ecx, edi
shr ecx, 7
and ecx, 1
mov dword [esp + 0x88], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x7c], ecx
mov ecx, edi
shr ecx, 0xa
and ecx, 1
mov edx, edi
shr edx, 8
and edx, 1
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x80], edx
lea ecx, [esp + 0x124]
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0x10]
mov edx, edi
shr eax, 0xb
shr edx, 0xf
and eax, 1
xor ebx, ebx
and edx, 1
mov dword [esp + 0x70], ecx
add ecx, 0x340
test edi, 0x700000
mov dword [esp + 0x84], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x90], edx
mov dword [esp + 0x94], ebx
mov dword [esp + 0xc0], ebx
mov dword [esp + 0x74], ecx
jne 0x40ff30
mov ecx, dword [esi + 8]
jmp 0x40ff32
mov ecx, edi
and ecx, 0x700000
cmp ecx, 0x300000
ja 0x40ff8e
je 0x40ff87
cmp ecx, ebx
je 0x40ff56
cmp ecx, 0x100000
je 0x40ff80
cmp ecx, 0x200000
jne 0x40ff9e
mov ecx, 0xa
cmp ecx, 0xff
mov dword [esp + 0x64], ebx
jle 0x40ffc2
mov ebx, ecx
sar ebx, 8
mov byte [esp + 0x6c], bl
mov dword [esp + 0x68], 2
mov byte [esp + 0x6d], cl
xor ebx, ebx
jmp 0x40ffce
mov ecx, 0xd
jmp 0x40ff5b
mov ecx, 0xd0a
jmp 0x40ff5b
cmp ecx, 0x400000
je 0x40ffb8
cmp ecx, 0x500000
je 0x40ffae
pop edi
pop esi
pop ebp
mov eax, 0xffffffe9
pop ebx
add esp, 0x2054
ret
mov dword [esp + 0x64], 2
jmp 0x40ffce
mov dword [esp + 0x64], 1
jmp 0x40ffce
mov dword [esp + 0x68], 1
mov byte [esp + 0x6c], cl
cmp edx, ebx
je 0x40ffeb
test dword [esi + 8], 0x80000000
je 0x40ffeb
pop edi
pop esi
pop ebp
mov eax, 0xfffffff3
pop ebx
add esp, 0x2054
ret
cmp eax, ebx
je 0x410059
test edi, 0x2000
jne 0x410059
mov edi, dword [esp + 0x2074]
mov edx, dword [esp + 0x2070]
push edi
push edx
call fcn.00410eb0
add esp, 8
test eax, eax
jl 0x410023
pop edi
pop esi
pop ebp
mov eax, 0xfffffff6
pop ebx
add esp, 0x2054
ret
mov eax, dword [esp + 0x2078]
test eax, eax
jle 0x410059
cmp eax, edi
jge 0x410059
movzx eax, byte [ebp]
cmp eax, 0x7f
jle 0x410059
and eax, 0xc0
je 0x410059
cmp eax, 0xc0
je 0x410059
pop edi
pop esi
pop ebp
mov eax, 0xfffffff5
pop ebx
add esp, 0x2054
ret
mov eax, dword [esi + 8]
mov ebx, dword [esp + 0x2084]
and eax, 7
mov dword [esp + 0xd0], eax
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edi, [eax + eax*2]
movzx eax, word [esi + 0x12]
test ax, ax
jbe 0x4100d3
movzx ecx, ax
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jl 0x4100d3
lea edi, [ecx + ecx*2 + 3]
lea ecx, [edi*4]
push ecx
call dword [0x437fc8]
add esp, 4
test eax, eax
mov dword [esp + 0x58], eax
jne 0x4100c9
pop edi
pop esi
pop ebp
mov eax, 0xfffffffa
pop ebx
add esp, 0x2054
ret
mov dword [esp + 0x24], 1
jmp 0x4100de
mov edx, dword [esp + 0x2080]
mov dword [esp + 0x58], edx
lea ecx, [edi + edi]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x60], eax
mov dword [esp + 0x5c], edi
mov dword [esp + 0x78], 0
mov dword [esp + 0xb0], 0xffffffff
movzx eax, word [esi + 0x10]
lea eax, [eax + eax + 2]
cmp eax, ebx
mov dword [esp + 0x20], eax
jle 0x41011e
mov dword [esp + 0x20], edi
mov ecx, dword [esp + 0x58]
test ecx, ecx
je 0x410150
mov eax, dword [esp + 0x20]
cdq
sub eax, edx
sar eax, 1
mov edx, 1
lea ecx, [ecx + edi*4]
sub edx, eax
lea eax, [ecx + edx*4]
sub ecx, 4
cmp ecx, eax
jb 0x410150
mov dword [ecx], 0xffffffff
sub ecx, 4
cmp ecx, eax
jae 0x410143
cmp dword [esp + 0x30], 0
jne 0x4101a6
test dword [esi + 8], 0x40000000
je 0x41018a
movzx eax, word [esi + 0x14]
mov ecx, eax
and ecx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x48], eax
je 0x4101a6
mov eax, dword [esp + 0x70]
movzx ecx, byte [eax + ecx]
mov dword [esp + 0x1c], ecx
jmp 0x4101a6
cmp dword [esp + 0x3c], 0
jne 0x4101a6
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4101a6
test byte [eax + 4], 1
je 0x4101a6
add eax, 8
mov dword [esp + 0x34], eax
test dword [esi + 8], 0x20000000
je 0x4101d9
movzx eax, word [esi + 0x16]
mov edx, dword [esp + 0x10]
mov ecx, eax
and ecx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x28], eax
movzx eax, byte [edx + ecx + 0x100]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0xa0]
mov esi, dword [esp + 0xcc]
nop
mov ecx, dword [esp + 0x58]
test ecx, ecx
mov dword [esp + 0x10], esi
je 0x41022c
mov edi, dword [esp + 0x20]
lea ecx, [ecx + edi*4]
cmp dword [esp + 0x58], ecx
jae 0x41022c
mov edi, dword [esp + 0x58]
sub ecx, edi
sub ecx, 1
shr ecx, 2
add ecx, 1
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x64]
cmp dword [esp + 0x2c], 0
je 0x410293
cmp ebp, eax
mov esi, ebp
jae 0x410293
lea esp, [esp]
test ebx, ebx
je 0x41026e
mov ecx, dword [esp + 0x14]
push ecx
lea edx, [esp + 0x6c]
push edx
push eax
push ebx
push esi
call fcn.00410bc0
mov edx, dword [esp + 0x7c]
mov ebx, dword [esp + 0x78]
add esp, 0x14
test eax, eax
jne 0x410293
mov eax, dword [esp + 0xa0]
jmp 0x41028c
mov ecx, eax
sub ecx, edx
cmp esi, ecx
ja 0x41028c
mov cl, byte [esi]
cmp cl, byte [esp + 0x6c]
jne 0x41028c
cmp edx, 1
je 0x410293
mov cl, byte [esi + 1]
cmp cl, byte [esp + 0x6d]
je 0x410293
add esi, 1
cmp esi, eax
jb 0x410240
mov eax, dword [esp + 0x1c]
test eax, eax
jl 0x4102f8
cmp dword [esp + 0x48], 0
je 0x4102d0
cmp ebp, esi
jae 0x4103c6
lea ebx, [ebx]
movzx edx, byte [ebp]
mov ecx, dword [esp + 0x70]
movzx edx, byte [edx + ecx]
cmp edx, eax
je 0x4103c6
add ebp, 1
cmp ebp, esi
jb 0x4102b0
jmp 0x4103c6
cmp ebp, esi
jae 0x4103c6
jmp 0x4102e0
movzx ecx, byte [ebp]
cmp ecx, eax
je 0x4103c6
add ebp, 1
cmp ebp, esi
jb 0x4102e0
jmp 0x4103c6
cmp dword [esp + 0x3c], 0
je 0x410399
mov ecx, dword [esp + 0x2078]
mov eax, dword [esp + 0x9c]
add ecx, eax
cmp ebp, ecx
jbe 0x4103c6
cmp ebp, esi
ja 0x41037a
jmp 0x410328
mov eax, dword [esp + 0x9c]
test ebx, ebx
je 0x410353
cmp ebp, eax
jbe 0x410373
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x6c]
push ecx
push eax
push ebx
push ebp
call fcn.00410cf0
mov ebx, dword [esp + 0x78]
add esp, 0x14
test eax, eax
jne 0x41037a
mov edx, dword [esp + 0x68]
jmp 0x410373
add eax, edx
cmp ebp, eax
jb 0x410373
mov cl, byte [esp + 0x6c]
mov eax, ebp
sub eax, edx
cmp byte [eax], cl
jne 0x410373
cmp edx, 1
je 0x41037a
mov cl, byte [esp + 0x6d]
cmp byte [eax + 1], cl
je 0x41037a
add ebp, 1
cmp ebp, esi
jbe 0x410321
cmp byte [ebp - 1], 0xd
jne 0x4103c6
cmp ebx, 1
je 0x41038a
cmp ebx, 2
jne 0x4103c6
cmp ebp, esi
jae 0x4103c6
cmp byte [ebp], 0xa
jne 0x4103c6
add ebp, 1
jmp 0x4103c6
mov edi, dword [esp + 0x34]
test edi, edi
je 0x4103c6
cmp ebp, esi
jae 0x4103c6
movzx eax, byte [ebp]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
shr eax, 3
mov al, byte [eax + edi]
test al, dl
jne 0x4103c6
add ebp, 1
cmp ebp, esi
jb 0x4103a5
mov edx, dword [esp + 0x44]
test edx, edx
mov esi, dword [esp + 0x10]
jl 0x41046f
mov ecx, esi
sub ecx, ebp
cmp ecx, 0x3e8
jge 0x41046f
cmp dword [esp + 0x90], 0
jne 0x41046f
xor eax, eax
cmp dword [esp + 0x1c], eax
setge al
add eax, ebp
cmp eax, dword [esp + 0x38]
jbe 0x41046f
cmp dword [esp + 0x28], 0
je 0x410450
cmp eax, esi
jae 0x410424
movzx ecx, byte [eax]
add eax, 1
cmp ecx, edx
je 0x410464
cmp ecx, dword [esp + 0x40]
je 0x410464
cmp eax, esi
jb 0x410410
xor edi, edi
cmp dword [esp + 0x24], 0
je 0x41043b
mov edx, dword [esp + 0x58]
push edx
call dword [0x437fcc]
add esp, 4
test edi, edi
je 0x410656
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x2054
ret
cmp eax, esi
jae 0x410424
movzx ecx, byte [eax]
add eax, 1
cmp ecx, edx
je 0x410464
cmp eax, esi
jb 0x410454
jmp 0x410424
sub eax, 1
cmp eax, esi
jae 0x410424
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0xd0]
mov ecx, dword [esp + 0x98]
xor ebx, ebx
push ebx
push ebx
push ebx
push edx
lea eax, [esp + 0x5c]
push eax
push 2
push ecx
push ebp
mov dword [esp + 0xc4], ebp
mov dword [esp + 0x6c], ebx
mov dword [esp + 0xdc], ebx
call fcn.00409b50
mov edi, eax
add esp, 0x20
cmp edi, ebx
jne 0x4105aa
cmp dword [esp + 0x2c], ebx
mov ebx, dword [esp + 0x64]
mov eax, dword [esp + 0xa0]
je 0x4104f5
test ebx, ebx
je 0x410572
cmp ebp, eax
jae 0x4104f5
mov edx, dword [esp + 0x14]
push edx
lea ecx, [esp + 0x6c]
push ecx
push eax
push ebx
push ebp
call fcn.00410bc0
add esp, 0x14
test eax, eax
jne 0x410426
mov eax, dword [esp + 0xa0]
mov ebx, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
add ebp, 1
cmp dword [esp + 0x14], 0
je 0x410524
cmp ebp, dword [esp + 0x10]
jae 0x410524
lea esp, [esp]
mov cl, byte [ebp]
and cl, 0xc0
cmp cl, 0x80
jne 0x410524
add ebp, 1
cmp ebp, dword [esp + 0x10]
jb 0x410510
cmp dword [esp + 0x30], 0
jne 0x410426
cmp ebp, dword [esp + 0x10]
ja 0x410426
cmp byte [ebp - 1], 0xd
jne 0x4101f0
cmp ebx, 1
je 0x410556
cmp ebx, 2
je 0x410556
cmp edx, 2
jne 0x4101f0
cmp ebp, dword [esp + 0x10]
jae 0x4101f0
cmp byte [ebp], 0xa
jne 0x4101f0
add ebp, 1
jmp 0x4101f0
mov edx, dword [esp + 0x68]
mov ecx, eax
sub ecx, edx
cmp ebp, ecx
ja 0x4104f9
mov cl, byte [esp + 0x6c]
cmp byte [ebp], cl
jne 0x4104f9
cmp edx, 1
je 0x410426
mov cl, byte [esp + 0x6d]
cmp byte [ebp + 1], cl
je 0x410426
jmp 0x4104f9
cmp edi, 1
jne 0x410426
cmp dword [esp + 0x24], 0
mov esi, dword [esp + 0x2084]
je 0x410604
cmp esi, 4
mov edi, dword [esp + 0x58]
jl 0x4105e9
mov ecx, dword [esp + 0x2080]
lea edx, [esi*4 - 8]
push edx
lea eax, [edi + 8]
push eax
add ecx, 8
push ecx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
cmp dword [esp + 0xac], esi
jle 0x4105fa
mov dword [esp + 0x78], 1
push edi
call dword [0x437fcc]
add esp, 4
cmp dword [esp + 0x78], 0
je 0x41060f
xor eax, eax
jmp 0x41061b
mov eax, dword [esp + 0xac]
cdq
sub eax, edx
sar eax, 1
cmp esi, 2
jge 0x41062d
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2054
ret
mov ecx, dword [esp + 0x9c]
mov esi, dword [esp + 0xa8]
mov edx, dword [esp + 0x2080]
sub ebp, ecx
sub esi, ecx
pop edi
mov dword [edx + 4], esi
pop esi
mov dword [edx], ebp
pop ebp
pop ebx
add esp, 0x2054
ret
cmp dword [esp + 0x90], 0
je 0x41067a
cmp dword [esp + 0x94], 0
je 0x41067a
pop edi
pop esi
pop ebp
mov eax, 0xfffffff4
pop ebx
add esp, 0x2054
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x2054
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x2054
ret