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

Disassembly:
sub esp, 0x38
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
push ebx
push ebp
mov ecx, dword [eax + 0x14]
mov eax, dword [edx]
mov ebp, dword [edx + 0x1c]
mov dword [esp + 8], ecx
mov ecx, dword [eax + 0x394]
push esi
mov ebx, dword [ebp + 0x30]
push edi
test ecx, 0x40000
mov dword [esp + 0x18], ebp
jne 0x4520c3
add ebx, dword [edx + 0x18]
mov eax, dword [ebp + 0x2c]
mov esi, dword [ebp + 0xb0]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x28], ebx
lea ecx, [eax + eax*4]
lea eax, [ebx + ecx*4]
xor ecx, ecx
inc esi
cmp edi, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], ecx
mov dword [ebp + 0xb0], esi
je 0x452113
mov esi, dword [edi + 0x50]
add esi, 0x23
mov dword [esp + 0x58], esi
jmp 0x452117
mov esi, dword [esp + 0x58]
mov edx, dword [edx + 0x1c]
mov eax, dword [edx]
cmp eax, ecx
je 0x45213f
push eax
mov eax, dword [esp + 0x14]
push eax
call fcn.004151f0
add esp, 8
test eax, eax
je 0x45213f
pop edi
pop esi
pop ebp
mov eax, 0xffff8702
pop ebx
add esp, 0x38
ret
mov eax, 0xcccccccd
lea ecx, [esp + 0x2c]
mul dword [ebp + 0x80]
mov eax, dword [ebp + 0x38]
push ecx
shr edx, 3
sub eax, edx
mov edx, dword [esp + 0x54]
push 0
push esi
push edx
mov dword [esp + 0x54], eax
call fcn.00452a70
mov esi, eax
add esp, 0x10
test esi, esi
je 0x45249e
mov eax, dword [esp + 0x3c]
xor ecx, ecx
cmp eax, ecx
jne 0x4525b8
cmp dword [ebp + 0x80], ecx
je 0x4525b8
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
add edx, eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x30], edx
mov dword [esp + 0x1c], ecx
mov eax, dword [ebp + 0x34]
lea ecx, [eax + eax*4]
inc eax
mov dword [ebp + 0x34], eax
mov eax, dword [esp + 0x40]
lea edi, [ebx + ecx*4]
cmp edi, eax
jb 0x4521c3
mov edi, ebx
mov dword [ebp + 0x34], 1
mov eax, dword [edi + 4]
cmp eax, 0xffffffff
je 0x4523b8
lea edx, [eax + edi + 4]
test edx, edx
je 0x4523b8
mov eax, dword [esp + 0x1c]
xor edx, edx
inc eax
mov dword [esp + 0x1c], eax
div dword [ebp + 0x2c]
test edx, edx
je 0x4523cb
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x452228
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x44]
cmp eax, ecx
ja 0x4523b8
mov ecx, dword [esp + 0x24]
test ecx, ecx
jne 0x452219
mov dword [esp + 0x24], edi
jmp 0x4523b8
cmp eax, dword [ecx + 0x10]
jbe 0x452220
mov edi, ecx
mov dword [esp + 0x24], 0
mov eax, dword [esp + 0x50]
mov ebp, dword [edi + 0x10]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ecx]
test eax, eax
je 0x45224e
mov edx, dword [esp + 0x10]
push eax
push edx
call fcn.00415420
add esp, 8
test eax, eax
jne 0x452132
mov ebx, dword [edi]
test ebx, ebx
je 0x45226a
mov eax, dword [esp + 0x10]
push ebx
push eax
call fcn.004151f0
add esp, 8
test eax, eax
jne 0x452132
mov eax, dword [edi + 4]
cmp eax, 0xffffffff
je 0x452360
lea esi, [eax + edi + 4]
test esi, esi
je 0x452360
cmp word [esi + 4], 0
jne 0x452360
cmp dword [esi + 0xc], ebp
ja 0x452360
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x34]
inc edx
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x34], edx
mov edx, dword [eax]
test dword [edx + 0x394], 0x40000
je 0x4522b9
mov ebp, dword [esi + 0x1c]
jmp 0x4522c1
mov ebp, dword [eax + 0x18]
mov eax, dword [esi + 0x1c]
add ebp, eax
test byte [esi + 8], 2
je 0x4522f0
mov eax, dword [esp + 0x4c]
push 0
push esi
push ebp
push edi
push eax
mov word [esi + 4], 1
call fcn.0047a430
add esp, 0x14
dec word [esi + 4]
test eax, eax
jne 0x45234f
mov eax, dword [esp + 0x18]
inc dword [eax + 0x78]
jmp 0x4522f7
mov eax, dword [esp + 0x18]
inc dword [eax + 0x74]
cmp word [esi + 4], 0
jne 0x452360
mov eax, dword [esp + 0x54]
test eax, eax
je 0x452314
mov ecx, dword [eax + 0x50]
mov eax, dword [ebp + 0x50]
cmp ecx, eax
je 0x4524d4
push esi
call fcn.00452e30
mov ebp, dword [esp + 0x24]
mov edx, dword [esp + 0x50]
add ebp, eax
mov dword [esp + 0x24], ebp
mov ebp, 1
push ebp
push esi
push edi
push edx
call fcn.0047ab80
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x452595
cmp dword [esp + 0x14], ebp
jle 0x45237a
mov dword [esp + 0x14], ebp
jmp 0x45237a
mov eax, dword [esp + 0x14]
test eax, eax
je 0x452360
push edi
call fcn.00452620
add esp, 4
test ebx, ebx
je 0x45237a
mov eax, dword [esp + 0x10]
push ebx
push eax
call fcn.00415420
add esp, 8
test eax, eax
jne 0x452132
mov ecx, dword [esp + 0x50]
mov edx, dword [ecx + 0x1c]
mov eax, dword [edx]
test eax, eax
je 0x45239d
push eax
mov eax, dword [esp + 0x14]
push eax
call fcn.004151f0
add esp, 8
test eax, eax
jne 0x452132
mov eax, dword [esp + 0x58]
mov ebp, dword [esp + 0x18]
mov ebx, dword [esp + 0x28]
lea ecx, [eax + eax*2]
mov eax, dword [esp + 0x20]
cmp eax, ecx
jae 0x452477
mov eax, dword [ebp + 0x80]
test eax, eax
jne 0x4521a5
jmp 0x452477
mov eax, dword [esp + 0x20]
test eax, eax
ja 0x452477
mov edi, dword [esp + 0x50]
mov edx, dword [edi + 0x1c]
mov eax, dword [edx]
test eax, eax
je 0x4523fc
mov esi, dword [esp + 0x10]
push eax
push esi
call fcn.00415420
add esp, 8
test eax, eax
jne 0x452132
jmp 0x452400
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
inc eax
mov dword [esp + 0x14], eax
dec eax
cmp eax, 5
ja case.default.0x45240f
jmp dword [eax*4 + 0x452600]
mov eax, dword [ebp + 0xc4]
mov dword [esp + 0x38], eax
push 0
push 0
push 0
push 0
push esi
call fcn.0042f400
push 0
push 1
push esi
call fcn.00475b30
add esp, 0x20
jmp case.0x45240f.1
mov ecx, dword [esp + 0x38]
mov edx, dword [ebp + 0xc4]
mov eax, 1
cmp ecx, edx
mov dword [esp + 0x14], eax
jne case.0x45240f.1
mov dword [esp + 0x3c], eax
mov edx, dword [edi + 0x1c]
mov eax, dword [edx]
test eax, eax
je 0x452477
push eax
mov eax, dword [esp + 0x14]
push eax
call fcn.004151f0
add esp, 8
test eax, eax
jne 0x452132
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x2c]
push ecx
push 0
push edx
push eax
call fcn.00452a70
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x452175
mov edi, dword [esp + 0x54]
test edi, edi
je 0x4524a8
inc dword [ebp + 0x80]
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x1c]
mov eax, dword [ecx]
test eax, eax
je 0x45251e
mov edx, dword [esp + 0x10]
push eax
push edx
call fcn.00415420
add esp, 8
test eax, eax
je 0x45251e
pop edi
pop esi
pop ebp
mov eax, 0xffff8702
pop ebx
add esp, 0x38
ret
mov ecx, dword [esp + 0x4c]
push 0
push esi
push edi
push ecx
call fcn.0047ab80
mov edi, eax
add esp, 0x10
test edi, edi
je 0x452518
test ebx, ebx
je 0x45250e
mov edx, dword [esp + 0x10]
push ebx
push edx
call fcn.00415420
add esp, 8
test eax, eax
je 0x45250e
pop edi
pop esi
pop ebp
mov eax, 0xffff8702
pop ebx
add esp, 0x38
ret
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
mov dword [esp + 0x2c], esi
jmp 0x452522
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x5c]
test ecx, ecx
je 0x452545
mov edx, dword [esp + 0x50]
mov eax, dword [edx]
mov edi, dword [eax + 0x394]
mov eax, esi
test edi, 0x40000
jne 0x452543
sub eax, dword [edx + 0x18]
mov dword [ecx], eax
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x1c]
mov dword [ecx], esi
mov ecx, dword [esp + 0x30]
add ecx, eax
mov eax, dword [esp + 0x18]
je 0x45256f
cmp ecx, dword [eax + 0xb8]
jbe 0x452569
mov dword [eax + 0xb8], ecx
add dword [eax + 0xb4], ecx
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x45258b
cmp ecx, dword [eax + 0xc0]
jbe 0x452585
mov dword [eax + 0xc0], ecx
add dword [eax + 0xbc], ecx
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret
test ebx, ebx
je 0x4525f6
mov edx, dword [esp + 0x10]
push ebx
push edx
call fcn.00415420
add esp, 8
test eax, eax
je 0x4525f6
pop edi
pop esi
pop ebp
mov eax, 0xffff8702
pop ebx
add esp, 0x38
ret
mov eax, dword [esp + 0x50]
mov edx, dword [eax + 0x1c]
mov eax, dword [edx]
cmp eax, ecx
je 0x4525e4
push eax
mov eax, dword [esp + 0x14]
push eax
call fcn.00415420
add esp, 8
test eax, eax
je 0x4525e4
pop edi
pop esi
pop ebp
mov eax, 0xffff8702
pop ebx
add esp, 0x38
ret
mov ecx, dword [esp + 0x10]
push str.unable_to_allocate_space_from_the_buffer_cache
push ecx
call fcn.00415f80
add esp, 8
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret