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

Disassembly:
push 0xffffffffffffffff
push 0x4d7a90
mov eax, dword fs:[0]
push eax
sub esp, 0x84
push ebx
push ebp
push esi
push edi
mov eax, dword [0x51b260]
xor eax, esp
push eax
lea eax, [esp + 0x98]
mov dword fs:[0], eax
mov edi, ecx
push 0x4db6d7
xor esi, esi
call fcn.00434400
push 0x4db6d7
mov ecx, edi
call fcn.00434400
push 0x4db6d7
mov ecx, edi
call fcn.00434490
push 0x4db6d7
mov ecx, edi
call fcn.00434400
mov eax, dword [edi + 0x134]
sub eax, dword [edi + 0x130]
sar eax, 2
test eax, eax
ja 0x4453e7
call fcn.0049eacd
mov ecx, dword [edi + 0x130]
mov edx, dword [edi + 0x134]
mov ebp, dword [ecx]
sub edx, ecx
sar edx, 2
cmp edx, 1
ja 0x445404
call fcn.0049eacd
mov ecx, dword [edi + 0x15c]
sub ecx, dword [edi + 0x158]
mov eax, dword [edi + 0x130]
mov ebx, dword [eax + 4]
sar ecx, 2
test ecx, ecx
ja 0x445425
call fcn.0049eacd
mov ecx, dword [edi + 0x134]
sub ecx, dword [edi + 0x130]
mov edx, dword [edi + 0x158]
mov eax, dword [edx]
sar ecx, 2
mov dword [esp + 0x28], eax
cmp ecx, 2
ja 0x44544a
call fcn.0049eacd
mov edx, dword [edi + 0x130]
mov eax, dword [edx + 8]
lea ecx, [edi + 0x86e4c]
mov dword [esp + 0x2c], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x14], eax
cmp eax, dword [ecx + 0x10]
jbe 0x445476
call fcn.0049eacd
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [ecx]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x14], eax
cmp dword [ecx + 0xc], eax
jbe 0x445495
call fcn.0049eacd
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
test ecx, ecx
je 0x4454a7
cmp ecx, eax
je 0x4454ac
call fcn.0049eacd
mov ecx, dword [esp + 0x14]
cmp dword [esp + 0x20], ecx
je 0x445518
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x445510
call fcn.0049eacd
xor eax, eax
mov edx, dword [esp + 0x20]
cmp edx, dword [eax + 0x10]
jb 0x4454d3
call fcn.0049eacd
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
cmp dword [esi + 4], ebp
jne 0x4454e3
cmp dword [esi + 8], ebx
je 0x445518
mov eax, dword [esp + 0x1c]
xor esi, esi
test eax, eax
jne 0x445514
call fcn.0049eacd
xor eax, eax
mov ecx, dword [esp + 0x20]
cmp ecx, dword [eax + 0x10]
jb 0x445502
call fcn.0049eacd
add dword [esp + 0x20], 4
mov ecx, dword [esp + 0x18]
jmp 0x445484
mov eax, dword [eax]
jmp 0x4454c5
mov eax, dword [eax]
jmp 0x4454f4
cmp dword [esp + 0x28], 0xffffffff
jne 0x4455bb
test esi, esi
je 0x445859
push 0
lea ebx, [esi + 0x10]
push ebx
mov ecx, edi
call fcn.00442a70
mov edi, dword [esi]
xor ebp, ebp
cmp edi, ebp
je 0x445550
mov ecx, edi
call fcn.0040c110
push edi
call fcn.0048dd02
add esp, 4
mov dword [ebx + 0x10], ebp
mov eax, dword [ebx + 0x24]
cmp eax, ebp
je 0x445563
push eax
call fcn.004a05a9
add esp, 4
push esi
mov dword [ebx + 0x28], 0x40
mov dword [ebx + 0x2c], ebp
call fcn.0048dd02
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
mov eax, dword [esi + 0x10]
lea ecx, [edi + 4]
sub eax, ecx
sar eax, 2
add esp, 4
cmp eax, ebp
jle 0x44559d
add eax, eax
add eax, eax
push eax
push ecx
push eax
push edi
call fcn.0049e73d
add esp, 0x10
add dword [esi + 0x10], 0xfffffffc
mov eax, dword [esi + 0x10]
cmp dword [esi + 0xc], edi
ja 0x4455b1
cmp edi, eax
jbe 0x445859
call fcn.0049eacd
jmp 0x445859
test esi, esi
jne 0x4455ee
push 0x5c
call fcn.0048dcc8
add esp, 4
test eax, eax
je 0x4455d6
mov ecx, eax
call fcn.00434190
jmp 0x4455d8
xor eax, eax
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x14]
mov esi, eax
push edx
mov dword [esp + 0x18], esi
call fcn.004027d0
jmp 0x445626
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
push 0
push eax
push ecx
lea edx, [edi + 0x1444]
push edx
lea ecx, [edi + 0x5820]
call fcn.00421980
mov ecx, dword [esi]
mov dword [esp + 0x14], ecx
test ecx, ecx
je 0x445626
call fcn.0040c110
mov eax, dword [esp + 0x14]
push eax
call fcn.0048dd02
add esp, 4
mov edx, dword [esp + 0x2c]
push 0
push 0
lea ecx, [edi + 0x1444]
push edx
call fcn.0040ee90
mov eax, dword [esp + 0x2c]
push 1
push eax
lea ecx, [edi + 0x1444]
call fcn.0040fe70
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
mov dword [esi + 0xc], eax
push eax
mov ecx, edi
mov dword [esi + 4], ebp
mov dword [esi + 8], ebx
call fcn.0043a760
mov edx, dword [esp + 0x14]
push eax
lea ecx, [edi + 0x5820]
push edx
call fcn.00428fc0
mov dword [esi], eax
mov dword [eax + 0xc8], 0x270f
mov eax, dword [esi]
mov dword [eax + 0xd0], ebx
imul ebx, ebx, 0x320
mov eax, dword [esi]
mov ecx, ebp
imul ebp, ebp, 0x258
sub ecx, dword [eax + 0x10]
mov dword [eax + 0xcc], ecx
mov edx, dword [esi]
mov dword [esi + 0x20], edx
mov eax, dword [esi]
mov ecx, dword [eax + 0xd0]
mov eax, dword [eax + 0xcc]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ecx
mov eax, dword [edi + 0x5924]
lea ecx, [ebx + ebp + 0x2710]
dec eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], 1
mov dword [esi + 0x14], ecx
mov ebp, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x1c]
mov dword [esp + 0x44], ebp
mov ebp, dword [esi + 0x14]
mov dword [esp + 0x38], ebp
mov ebp, dword [esi + 0x10]
mov dword [esp + 0x34], ebp
mov ebp, eax
mov dword [esp + 0x48], ebp
mov ebp, dword [esi + 0x28]
mov dword [esp + 0x4c], ebp
mov ebp, dword [esi + 0x2c]
xor ebx, ebx
mov dword [esp + 0x50], ebp
mov ebp, dword [esi + 0x30]
mov dword [esp + 0x30], eax
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
mov dword [esp + 0x54], ebp
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x44]
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x64], eax
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x70], ecx
mov dword [esp + 0x78], edx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x68], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], ebp
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x20]
push eax
lea ecx, [edi + 0x58dc]
mov byte [esp + 0xa8], 1
call fcn.00422150
mov eax, dword [esp + 0x8c]
cmp eax, ebx
je 0x4457c0
push eax
call fcn.004a05a9
add esp, 4
mov ecx, dword [esi + 0x20]
push ecx
lea ebp, [edi + 0x5820]
mov ecx, ebp
mov dword [esp + 0xa4], 0xffffffff
call fcn.0041f990
mov eax, dword [esi + 0x20]
mov edx, dword [eax + 0x54]
mov ecx, dword [esi + 0x48]
sub edx, dword [eax + 0x4c]
sub ecx, dword [esi + 0x40]
lea ebx, [esi + 0x40]
cmp ecx, edx
jge 0x44581b
mov edx, dword [eax + 0x5c]
mov dword [ebx + 0x10], edx
mov ecx, dword [eax + 0x60]
mov dword [ebx + 0x14], ecx
mov edx, dword [eax + 0x64]
mov dword [ebx + 0x18], edx
mov ecx, dword [eax + 0x50]
mov dword [ebx + 4], ecx
mov edx, dword [eax + 0x4c]
mov dword [ebx], edx
mov ecx, dword [eax + 0x54]
mov dword [ebx + 8], ecx
mov edx, dword [eax + 0x58]
mov dword [ebx + 0xc], edx
push ebx
mov ecx, ebp
call fcn.0041fba0
push ebx
mov ecx, edi
call fcn.0043a5b0
mov esi, dword [esi + 0x20]
mov eax, dword [esi + 0x5c]
add esi, 0x4c
mov dword [ebx + 0x10], eax
mov ecx, dword [esi + 0x14]
mov dword [ebx + 0x14], ecx
mov edx, dword [esi + 0x18]
mov dword [ebx + 0x18], edx
mov eax, dword [esi + 4]
mov dword [ebx + 4], eax
mov ecx, dword [esi]
mov dword [ebx], ecx
mov edx, dword [esi + 8]
mov dword [ebx + 8], edx
mov eax, dword [esi + 0xc]
mov dword [ebx + 0xc], eax
mov ecx, dword [esp + 0x98]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x90
ret