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

Disassembly:
sub esp, 0x368
push ebx
push ebp
mov ebp, dword [esp + 0x374]
push esi
push edi
xor ebx, ebx
test ebx, ebx
je 0x45d680
push ebx
call fcn.00466f32
add esp, 4
push 0x4ad274
push ebp
call fcn.00457a10
mov ebx, eax
push ebx
push 1
lea eax, [esp + 0x74]
push 0x314
push eax
call fcn.004681cd
add esp, 0x18
cmp eax, 1
jne 0x45d673
mov ecx, 2
mov edi, 0x4b4b30
lea esi, [esp + 0x64]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x45d94e
mov ecx, 2
mov edi, 0x4b4b30
mov esi, 0x5ba2e8
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x45d6e4
mov ecx, 0xc5
lea esi, [esp + 0x64]
mov edi, 0x5ba2e8
jmp 0x45d6f2
mov ecx, 5
lea esi, [esp + 0x64]
mov edi, 0x5ba2e8
rep movsd dword es:[edi], dword [esi]
or ecx, 0xffffffff
xor eax, eax
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
shr ecx, 2
mov esi, edi
mov edi, 0x5ba5fc
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, 0x4c9008
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
mov edi, 0x5ba700
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x74]
push ecx
call fcn.004564a0
mov edx, dword [esp + 0x78]
push ebx
push 1
mov esi, eax
push edx
push esi
mov dword [esp + 0x34], esi
call fcn.004681cd
add esp, 0x14
cmp eax, 1
jne 0x45d673
push ebx
call fcn.00466f32
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push 0
push eax
push ecx
call fcn.004557d0
mov ebx, eax
add esp, 0x10
mov dword [esp + 0x10], ebx
xor eax, eax
lea ecx, [esp + 0x7a]
mov dl, byte [ecx - 2]
mov edi, dword [ebx + 0x24]
mov byte [eax + edi], dl
mov dl, byte [ecx]
mov edi, dword [ebx + 0x24]
mov byte [eax + edi + 2], dl
mov dl, byte [ecx - 1]
mov edi, dword [ebx + 0x24]
mov byte [eax + edi + 1], dl
add eax, 4
add ecx, 3
cmp eax, 0x400
jl 0x45d789
mov eax, dword [esp + 0x6c]
mov edx, 3
sub edx, eax
mov dword [esp + 0x34], edx
mov edx, 2
sub edx, eax
mov dword [esp + 0x38], edx
mov ecx, eax
imul ecx, dword [esp + 0x70]
mov edi, dword [ebx + 0x28]
mov edx, 1
sub edx, eax
mov dword [esp + 0x3c], edx
mov edx, eax
neg edx
mov dword [esp + 0x40], edx
mov edx, 0xfffffffe
sub edx, eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x18], ecx
or ecx, 0xffffffff
mov edx, 0xfffffffd
sub edx, eax
mov dword [esp + 0x4c], edx
lea edx, [eax + eax]
mov dword [esp + 0x24], ecx
sub ecx, eax
neg eax
shl eax, 1
mov ebp, 2
sub ebp, edx
mov dword [esp + 0x50], ebp
mov dword [esp + 0x58], eax
or eax, 0xffffffff
sub eax, edx
mov ebp, 1
sub ebp, edx
mov dl, byte [esi]
mov dword [esp + 0x54], ebp
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x18]
mov ebp, 1
mov dword [esp + 0x44], ecx
add ecx, ecx
cmp eax, ebp
mov byte [edi], dl
mov dword [esp + 0x1c], edi
mov dword [esp + 0x28], 0xfffffffe
mov dword [esp + 0x2c], 0xfffffffd
mov dword [esp + 0x30], 0xfffffffc
mov dword [esp + 0x60], ecx
mov edx, ebp
jle 0x45d906
xor eax, eax
mov al, byte [edx + esi]
inc edx
test al, 0x80
je 0x45d8c2
mov ecx, eax
sar ecx, 3
and eax, 7
and ecx, 0xf
cmp eax, 7
je 0x45d892
add eax, 3
jmp 0x45d89e
xor eax, eax
mov ax, word [edx + esi]
add eax, 0xa
add edx, 2
test eax, eax
jle 0x45d8fc
mov ecx, dword [esp + ecx*4 + 0x24]
add ecx, ebp
add ecx, edi
mov dword [esp + 0x14], eax
mov al, byte [ecx]
mov byte [edi + ebp], al
mov eax, dword [esp + 0x14]
inc ebp
inc ecx
dec eax
mov dword [esp + 0x14], eax
jne 0x45d8ae
jmp 0x45d8fc
cmp eax, 0x7f
je 0x45d8ca
inc eax
jmp 0x45d8d8
xor eax, eax
mov ax, word [edx + esi]
add eax, 0x80
add edx, 2
mov ecx, eax
mov ebx, ecx
add edi, ebp
shr ecx, 2
add esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
mov ebx, dword [esp + 0x10]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
add ebp, eax
add edx, eax
cmp ebp, dword [esp + 0x18]
jl 0x45d873
push esi
call fcn.0046728e
mov eax, dword [ebx]
lea ecx, [eax + eax*2]
mov eax, dword [ebx + 8]
add esp, 4
cmp ecx, eax
je 0x45d941
mov esi, dword [ebx + 4]
dec esi
js 0x45d941
mov eax, dword [ebx]
mov edx, dword [ebx + 8]
mov ecx, dword [ebx + 0x28]
imul edx, esi
push eax
imul eax, esi
add eax, ecx
push eax
add edx, ecx
push edx
call fcn.004678c0
add esp, 0xc
dec esi
jns 0x45d921
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x368
ret
test ebx, ebx
je 0x45d95b
push ebx
call fcn.00466f32
add esp, 4
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x368
ret