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

Disassembly:
sub esp, 0x38
push ebx
push ebp
mov ebp, dword [esp + 0x44]
push esi
xor esi, esi
push edi
mov ebx, dword [ebp]
mov dword [0x51a938], esi
mov eax, dword [ebp]
mov dword [esp + 0x34], ebx
cmp dword [eax + 0x74], esi
jge 0x452b11
push esi
push 2
mov dword [0x51d090], 0x50ffdc
mov dword [0x51d094], 0x7ae
call fcn.00449f60
add esp, 8
mov ecx, dword [ebp]
cmp dword [ecx + 0x78], esi
ja 0x452b38
push esi
push 2
mov dword [0x51d090], 0x50ffdc
mov dword [0x51d094], 0x7b1
call fcn.00449f60
add esp, 8
mov eax, dword [ebp]
cmp dword [eax + 0x78], esi
jbe 0x452b7b
mov edi, 0x80
mov edx, dword [edi + eax]
mov eax, dword [edx + 0x40]
test eax, eax
ja 0x452b6f
push 0
push 2
mov dword [0x51d090], 0x50ffdc
mov dword [0x51d094], 0x7b5
call fcn.00449f60
add esp, 8
mov eax, dword [ebp]
inc esi
add edi, 4
cmp esi, dword [eax + 0x78]
jb 0x452b45
mov eax, dword [0x51a938]
test eax, eax
jne 0x452f1a
mov eax, dword [ebp]
mov cl, byte [eax + 6]
test cl, cl
je 0x452bcd
mov edx, dword [ebx + 0x78]
cmp edx, 1
jbe 0x452bcd
mov ebp, dword [ebx + 0x80]
lea eax, [ebx + 0x80]
dec edx
lea esi, [ebx + 0x84]
mov ecx, edx
mov edi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + edx*4 + 0x80], ebp
mov ecx, dword [eax]
mov ebp, dword [esp + 0x4c]
mov dword [ebx + 0x7c], 0
mov dword [ebx + 0xc0], ecx
mov eax, dword [ebx + 0x78]
test eax, eax
jbe 0x452cc9
lea edx, [ebx + 0x80]
mov dword [esp + 0x28], eax
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x1c]
xor ecx, ecx
xor edx, edx
mov ebp, dword [eax]
mov eax, dword [ebp + 0x40]
dec eax
cmp ecx, eax
sbb ecx, ecx
test eax, ecx
jbe 0x452c9b
lea edi, [ebp + 0x48]
lea ebx, [ebp + 0x4c]
mov dword [esp + 0x2c], edi
mov dword [esp + 0x30], ebx
mov ecx, dword [edi]
mov dword [esp + 0x3c], ecx
cmp dword [ecx + 0x40], 3
jne 0x452c78
cmp dword [ecx + 0x58], 2
je 0x452c78
mov ecx, dword [ebp + eax*4 + 0x48]
lea esi, [ebp + eax*4 + 0x48]
cmp dword [ecx + 0x40], 3
jne 0x452c45
cmp dword [ecx + 0x58], 2
je 0x452c45
cmp eax, edx
jbe 0x452c78
mov ecx, dword [esi - 4]
sub esi, 4
dec eax
cmp dword [ecx + 0x40], 3
je 0x452c2e
cmp eax, edx
jbe 0x452c78
mov ecx, eax
mov esi, ebx
sub ecx, edx
shl ecx, 2
mov ebx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, dword [esp + 0x30]
and ecx, 3
dec edx
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x2c]
mov dword [ebp + eax*4 + 0x48], ecx
sub ebx, 4
sub edi, 4
dec eax
xor ecx, ecx
inc edx
add ebx, 4
add edi, 4
cmp ecx, eax
mov dword [esp + 0x30], ebx
sbb ecx, ecx
mov dword [esp + 0x2c], edi
and ecx, eax
cmp edx, ecx
jb 0x452c0e
mov ebx, dword [esp + 0x34]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
mov edx, dword [ebp + 0x48]
add ecx, 4
dec eax
mov dword [ebp + 0x44], 0
mov dword [ebp + 0xc8], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], eax
jne 0x452be6
mov ebp, dword [esp + 0x4c]
mov dword [esp + 0x14], 1
mov eax, dword [ebx + 0x78]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], eax
jbe 0x452ee8
lea eax, [ebx + 0x80]
mov dword [esp + 0x38], eax
mov esi, dword [eax]
xor edi, edi
xor ebp, ebp
mov dword [esp + 0x10], ecx
mov eax, dword [esi]
mov edx, dword [esi + 4]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 8]
mov dword [esp + 0x1c], edx
mov edx, dword [esi + 0xc]
mov dword [esp + 0x20], eax
lea eax, [ebx + 0x80]
mov dword [esp + 0x18], edx
mov ebx, eax
jmp 0x452d23
mov ecx, dword [esp + 0x30]
mov eax, dword [ebx]
cmp edi, ecx
je 0x452d6b
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
push ecx
call fcn.00452f50
add esp, 0x24
test eax, eax
jle 0x452d6b
test ebp, ebp
je 0x452d65
cmp ebp, eax
jle 0x452d6b
mov ebp, eax
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x3c]
inc edi
add ebx, 4
cmp edi, eax
jb 0x452d1f
mov eax, dword [esp + 0x14]
lea edx, [eax - 1]
cmp edx, 3
ja case.default.0x452d84
dec eax
jmp dword [eax*4 + 0x452f24]
mov eax, dword [esp + 0x10]
mov dword [esi + 0x30], eax
jmp case.default.0x452d84
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x34], ecx
jmp case.default.0x452d84
mov edx, dword [esp + 0x10]
mov dword [esi + 0x38], edx
jmp case.default.0x452d84
mov eax, dword [esp + 0x10]
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x40]
xor ecx, ecx
test eax, eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x44], eax
jbe 0x452ec0
lea ebp, [esi + 0x48]
mov dword [esp + 0x40], ebp
mov dword [esp + 0x2c], ebp
jmp 0x452dd3
mov ebp, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov edi, dword [edx]
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x40]
mov dword [esp + 0x1c], edx
mov edx, dword [edi + 0xc]
cmp eax, 2
mov dword [esp + 0x18], edx
jne 0x452e0e
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
inc edx
dec eax
mov dword [esp + 0x1c], edx
mov dword [esp + 0x18], eax
xor esi, esi
xor ebx, ebx
mov dword [esp + 0x10], ecx
jmp 0x452e1c
mov ecx, dword [esp + 0x28]
mov eax, dword [ebp]
cmp esi, ecx
je 0x452e65
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 8]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
mov edx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x2c]
push edx
push eax
push ecx
call fcn.00452f50
add esp, 0x24
test eax, eax
jle 0x452e65
test ebx, ebx
je 0x452e5f
cmp ebx, eax
jle 0x452e65
mov ebx, eax
mov dword [esp + 0x10], esi
mov edx, dword [esp + 0x44]
inc esi
add ebp, 4
cmp esi, edx
jb 0x452e18
mov eax, dword [esp + 0x14]
dec eax
cmp eax, 3
ja case.default.0x452e7b
jmp dword [eax*4 + 0x452f34]
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x30], ecx
jmp case.default.0x452e7b
mov eax, dword [esp + 0x10]
mov dword [edi + 0x34], eax
jmp case.default.0x452e7b
mov ecx, dword [esp + 0x10]
mov dword [edi + 0x38], ecx
jmp case.default.0x452e7b
mov eax, dword [esp + 0x10]
mov dword [edi + 0x3c], eax
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
inc ecx
add esi, 4
cmp ecx, edx
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], esi
jb 0x452dcf
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x34]
inc ecx
add eax, 4
cmp ecx, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x38], eax
jb 0x452cf0
mov ebp, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
inc eax
cmp eax, 4
mov dword [esp + 0x14], eax
jle 0x452cd1
push 0
push ebp
mov byte [ebx + 2], 1
mov byte [ebx + 1], 1
call fcn.00451900
push 0
push ebp
call fcn.004519d0
mov eax, dword [0x51a938]
add esp, 0x10
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret