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

Disassembly:
push 0xffffffffffffffff
push 0x4bc02e
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
push ebx
push ebp
push esi
push edi
mov eax, dword [0x57e030]
xor eax, esp
push eax
lea eax, [esp + 0xb8]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xc8]
lea eax, [esp + 0x5c]
push eax
call fcn.00426930
mov dword [esp + 0xc0], 0
mov ecx, dword [ebp + 0x2c]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
lea eax, [esp + 0x5c]
push eax
call edx
mov ecx, dword [ebp + 0x2c]
mov eax, dword [ecx + 4]
mov eax, dword [eax + 0x48]
add ecx, 4
lea edx, [esp + 0x48]
push edx
mov dword [esp + 0x24], ecx
call eax
lea esi, [ebp + 0x18]
lea eax, [esp + 0x48]
mov ecx, esi
call fcn.00468cf0
test al, al
jne 0x415a7d
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov dword [esi], ecx
mov ecx, dword [esp + 0x54]
mov dword [esi + 4], edx
mov dx, word [esp + 0x58]
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov byte [esp + 0x8c], 1
mov word [esi + 0x10], dx
mov edi, dword [esp + 0xcc]
mov eax, dword [esp + 0x8c]
add edi, 0x1c
push eax
mov ebx, edi
mov dword [esp + 0x20], edi
call fcn.00423290
cmp byte [esp + 0x8c], 0
je 0x415b0c
mov esi, dword [esp + 0xcc]
mov edx, dword [ebp]
mov edx, dword [edx + 8]
push esi
lea eax, [esp + 0x4c]
push eax
mov ecx, ebp
call edx
mov edi, dword [esp + 0x20]
mov eax, dword [edi]
mov edx, dword [eax + 0x40]
lea ecx, [esp + 0x24]
push ecx
mov ecx, edi
call edx
lea eax, [esp + 0xa4]
lea ecx, [esp + 0x24]
call fcn.00415520
mov byte [esp + 0xc0], 2
mov eax, dword [ebp]
mov edx, dword [eax + 0x10]
push esi
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebp
call edx
push esi
lea esi, [esp + 0xa8]
call fcn.00418380
mov byte [esp + 0xc0], 0
mov edi, ebx
mov ecx, dword [esp + 0xcc]
mov eax, dword [ebp]
mov eax, dword [eax + 0x24]
push ecx
lea edx, [esp + 0x80]
push edx
mov ecx, ebp
call eax
lea ecx, [esp + 0x30]
push ecx
call fcn.00477d50
lea edx, [esp + 0x6c]
push edx
lea ecx, [esp + 0x34]
mov byte [esp + 0xc4], 3
call fcn.00462f80
mov ecx, dword [esp + 0x40]
sub ecx, dword [esp + 0x3c]
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
mov ebx, edi
call fcn.00423300
mov esi, dword [esp + 0x3c]
mov eax, dword [esp + 0x40]
cmp esi, eax
jbe 0x415b7b
call fcn.00480e22
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x30]
nop
mov dword [esp + 0x24], eax
cmp dword [esp + 0x3c], eax
jbe 0x415b8f
call fcn.00480e22
test ebx, ebx
je 0x415b99
cmp ebx, dword [esp + 0x30]
je 0x415b9e
call fcn.00480e22
cmp esi, dword [esp + 0x24]
jae 0x415c00
test ebx, ebx
jne 0x415bf8
call fcn.00480e22
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x415bb9
call fcn.00480e22
mov edi, dword [esp + 0xcc]
mov eax, dword [ebp]
mov edx, dword [eax + 0x20]
push edi
push esi
mov ecx, ebp
call edx
push edi
mov edi, dword [esp + 0x24]
call fcn.00418380
test ebx, ebx
jne 0x415bfc
call fcn.00480e22
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x415beb
call fcn.00480e22
mov eax, dword [esp + 0x40]
mov edi, dword [esp + 0x1c]
add esi, 0x14
jmp 0x415b80
mov eax, dword [ebx]
jmp 0x415baf
mov eax, dword [ebx]
jmp 0x415be1
mov eax, dword [esp + 0x68]
test eax, eax
je 0x415c12
cmp dword [eax + 4], 0
jne 0x415c12
xor eax, eax
jmp 0x415c17
mov eax, 1
test eax, eax
setne al
mov byte [esp + 0x14], al
mov byte [esp + 0x18], al
xor esi, esi
mov ebx, 1
jmp 0x415c30
mov ecx, dword [edi + 4]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push ebx
lea edx, [esp + esi + 0x1c]
push edx
call eax
add esi, eax
sub ebx, eax
cmp esi, 1
jb 0x415c30
cmp byte [esp + 0x14], 0
je 0x415cdb
mov ebx, dword [esp + 0xcc]
mov edx, dword [ebp]
mov edx, dword [edx + 0x18]
push ebx
lea eax, [esp + 0x94]
push eax
mov ecx, ebp
call edx
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x34]
call fcn.00462f80
mov esi, dword [esp + 0x3c]
cmp esi, dword [esp + 0x40]
jbe 0x415c8b
call fcn.00480e22
mov eax, dword [esp + 0x30]
mov edi, eax
test eax, eax
jne 0x415e07
call fcn.00480e22
xor eax, eax
cmp esi, dword [eax + 0x10]
jb 0x415caa
call fcn.00480e22
mov edx, dword [ebp]
mov eax, dword [edx + 0x20]
push ebx
push esi
mov ecx, ebp
call eax
test edi, edi
jne 0x415e0e
call fcn.00480e22
cmp esi, dword [edi + 0x10]
jb 0x415ccd
call fcn.00480e22
mov edi, dword [esp + 0x20]
push ebx
call fcn.00418380
mov edi, dword [esp + 0x1c]
mov cl, byte [esp + 0x8d]
mov byte [esp + 0x14], cl
xor esi, esi
mov ebx, 1
lea ecx, [ecx]
mov ecx, dword [edi + 4]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push ebx
lea eax, [esp + esi + 0x18]
push eax
call edx
add esi, eax
sub ebx, eax
cmp esi, 1
jb 0x415cf0
mov ecx, dword [esp + 0xcc]
mov eax, dword [ebp]
mov eax, dword [eax + 0x18]
push ecx
lea edx, [esp + 0x9c]
push edx
mov ecx, ebp
call eax
mov cl, byte [esp + 0x8e]
mov byte [esp + 0x14], cl
xor esi, esi
mov edi, 1
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 4]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
push edi
lea edx, [esp + esi + 0x18]
push edx
call eax
add esi, eax
sub edi, eax
cmp esi, 1
jb 0x415d35
cmp byte [esp + 0x8e], 0
je 0x415e6b
mov edi, dword [ebp + 0x2c]
add edi, 0x48
lea esi, [esp + 0x24]
mov ecx, edi
call fcn.00415570
mov esi, dword [esp + 0xcc]
mov byte [esp + 0xc0], 4
mov edx, dword [ebp]
push esi
push eax
mov eax, dword [edx + 0x10]
mov ecx, ebp
call eax
mov byte [esp + 0xc0], 3
mov ecx, dword [edi + 0x40]
mov edx, dword [edi + 0x44]
mov eax, dword [ebp]
mov dword [esp + 0x24], ecx
push esi
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0x18]
push ecx
mov ecx, ebp
call edx
mov eax, dword [edi]
mov edx, dword [eax + 0x68]
mov ecx, edi
call edx
mov ebp, eax
mov eax, dword [edi]
mov edx, dword [eax + 0x60]
mov ecx, edi
call edx
xor esi, esi
mov dword [esp + 0x24], eax
mov ebx, ebp
test ebp, ebp
jbe 0x415df0
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 4]
mov eax, dword [esp + 0x24]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push ebx
add eax, esi
push eax
call edx
add esi, eax
sub ebx, eax
cmp esi, ebp
jb 0x415dd2
mov esi, edi
call fcn.00468f30
test eax, eax
je 0x415e6b
mov eax, dword [edi + 0x38]
sub eax, dword [edi + 0x34]
jne 0x415e15
xor ebp, ebp
jmp 0x415e3e
mov eax, dword [eax]
jmp 0x415ca0
mov edi, dword [edi]
jmp 0x415cc3
mov ebp, dword [edi + 0x34]
cmp ebp, dword [edi + 0x38]
jbe 0x415e22
call fcn.00480e22
mov eax, dword [edi + 0x28]
test eax, eax
jne 0x415f2e
call fcn.00480e22
xor eax, eax
cmp ebp, dword [eax + 0x10]
jb 0x415e3e
call fcn.00480e22
mov esi, edi
call fcn.00468f30
mov ebx, eax
xor esi, esi
mov edi, ebx
test ebx, ebx
jbe 0x415e6b
nop
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx]
mov edx, dword [edx + 4]
push edi
lea eax, [esi + ebp]
push eax
call edx
add esi, eax
sub edi, eax
cmp esi, ebx
jb 0x415e50
mov byte [esp + 0xc0], 5
mov esi, dword [esp + 0x3c]
test esi, esi
je 0x415ea1
mov edi, dword [esp + 0x40]
cmp esi, edi
je 0x415e98
mov eax, dword [esi]
mov edx, dword [eax]
push 0
mov ecx, esi
call edx
add esi, 0x14
cmp esi, edi
jne 0x415e83
mov esi, dword [esp + 0x3c]
push esi
call fcn.00480e32
add esp, 4
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x30]
push eax
call fcn.00480e32
mov eax, dword [esp + 0x8c]
add esp, 4
mov esi, vtable.Region.0
mov dword [esp + 0x7c], esi
test eax, eax
je 0x415ede
cmp dword [eax], 0
je 0x415ede
push eax
call fcn.00481665
add esp, 4
mov eax, dword [esp + 0x78]
mov dword [esp + 0x6c], esi
test eax, eax
je 0x415ef8
cmp dword [eax], 0
je 0x415ef8
push eax
call fcn.00481665
add esp, 4
mov eax, dword [esp + 0x68]
mov dword [esp + 0x5c], esi
test eax, eax
je 0x415f12
cmp dword [eax], 0
je 0x415f12
push eax
call fcn.00481665
add esp, 4
mov ecx, dword [esp + 0xb8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xb0
ret 8
mov eax, dword [eax]
jmp 0x415e34