Function at 0x451b10
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 0x451b30
push ebx
call fcn.0045ad02
add esp, 4
push 0x49f1f4
push ebp
call fcn.0044bde0
mov ebx, eax
push ebx
push 1
lea eax, [esp + 0x74]
push 0x314
push eax
call fcn.0045bf6d
add esp, 0x18
cmp eax, 1
jne 0x451b23
mov ecx, 2
mov edi, 0x4a6438
lea esi, [esp + 0x64]
xor edx, edx
repe cmpsd dword [esi], dword es:[edi]
jne 0x451dfe
mov ecx, 2
mov edi, 0x4a6438
mov esi, 0x5a64b0
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x451b94
mov ecx, 0xc5
lea esi, [esp + 0x64]
mov edi, 0x5a64b0
jmp 0x451ba2
mov ecx, 5
lea esi, [esp + 0x64]
mov edi, 0x5a64b0
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, 0x5a67c4
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, 0x4ba100
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
shr ecx, 2
mov esi, edi
mov edi, 0x5a68c8
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.0044a930
mov edx, dword [esp + 0x78]
push ebx
push 1
mov esi, eax
push edx
push esi
mov dword [esp + 0x34], esi
call fcn.0045bf6d
add esp, 0x14
cmp eax, 1
jne 0x451b23
push ebx
call fcn.0045ad02
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x70]
push 0
push eax
push ecx
call fcn.0044a700
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 0x451c39
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 0x451db6
xor eax, eax
mov al, byte [edx + esi]
inc edx
test al, 0x80
je 0x451d72
mov ecx, eax
sar ecx, 3
and eax, 7
and ecx, 0xf
cmp eax, 7
je 0x451d42
add eax, 3
jmp 0x451d4e
xor eax, eax
mov ax, word [edx + esi]
add eax, 0xa
add edx, 2
test eax, eax
jle 0x451dac
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 0x451d5e
jmp 0x451dac
cmp eax, 0x7f
je 0x451d7a
inc eax
jmp 0x451d88
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 0x451d23
push esi
call fcn.0045af2b
mov eax, dword [ebx]
lea ecx, [eax + eax*2]
mov eax, dword [ebx + 8]
add esp, 4
cmp ecx, eax
je 0x451df1
mov esi, dword [ebx + 4]
dec esi
js 0x451df1
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.0045b560
add esp, 0xc
dec esi
jns 0x451dd1
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x368
ret
test ebx, ebx
je 0x451e0b
push ebx
call fcn.0045ad02
add esp, 4
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x368
ret