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

Disassembly:
sub esp, 0x58
push ebx
push ebp
push esi
xor esi, esi
mov ebp, ecx
or ebx, 0xffffffff
push edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], esi
cmp dword [ebp + 0x4524], esi
jbe 0x450ef1
lea eax, [ebp + 0x4528]
mov dword [esp + 0x10], eax
lea edi, [ebp + 0x528]
jmp 0x450c10
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], ecx
cmp ebx, 0xffffffff
je 0x450c8e
mov eax, dword [edi]
sub eax, esi
mov dword [esp + 0x24], eax
test eax, eax
jle 0x450c8e
add eax, ebx
mov dword [esp + 0x18], eax
cmp dword [ebp + 0x145c4], eax
jae 0x450c67
mov edx, eax
mov eax, dword [ebp + 0x145c0]
push edx
push eax
call fcn.004b024f
add esp, 8
mov dword [ebp + 0x145c0], eax
test eax, eax
jne 0x450c5d
mov ecx, 0x5072f4
call fcn.0042cb70
mov ecx, dword [esp + 0x18]
mov dword [ebp + 0x145c4], ecx
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x24]
mov ecx, dword [eax]
push edx
mov edx, dword [ebp + 0x145c0]
add ecx, esi
push ecx
add edx, ebx
push edx
call fcn.004b04f0
mov eax, dword [esp + 0x24]
add esp, 0xc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x10]
push 0x40
push 0
push ecx
call fcn.004b0470
mov edx, dword [esp + 0x78]
mov ecx, dword [edi]
mov esi, dword [edx]
mov eax, dword [esp + 0x80]
mov edx, dword [edi - 4]
add eax, ecx
and eax, dword [ebp + 0x500]
lea ebx, [edx - 2]
add esp, 0xc
add esi, ecx
cmp ebx, 6
ja case.default.0x450cc7
jmp dword [ebx*4 + 0x4512fc]
cmp edx, 3
sete dl
movzx eax, dl
mov edx, dword [ebp + 0x16600]
push eax
mov eax, dword [esp + 0x14]
add edx, ecx
mov ecx, dword [edi + 4]
push edx
push eax
push ecx
push esi
mov ecx, ebp
call fcn.0044d7f0
jmp case.default.0x450cc7
mov edx, dword [esp + 0x10]
mov eax, dword [edi + 4]
push edx
push eax
push esi
mov ecx, ebp
call fcn.0044d8d0
jmp case.default.0x450cc7
mov ecx, dword [edi + 8]
mov edx, dword [esp + 0x10]
push eax
mov eax, dword [edi + 4]
push ecx
push edx
push eax
push esi
mov ecx, ebp
call fcn.0044d960
jmp case.default.0x450cc7
mov ecx, dword [esp + 0x10]
mov edx, dword [edi + 4]
push eax
push ecx
push edx
push esi
mov ecx, ebp
call fcn.0044fbd0
jmp case.default.0x450cc7
mov ecx, dword [esp + 0x10]
mov edx, dword [edi + 4]
push eax
mov eax, dword [edi + 8]
push eax
push ecx
push edx
push esi
mov ecx, ebp
call fcn.0044e0a0
jmp case.default.0x450cc7
mov eax, dword [ebp + 0x16600]
mov edx, dword [edi + 4]
add eax, ecx
mov ecx, dword [esp + 0x10]
push eax
push ecx
push edx
push esi
mov ecx, ebp
call fcn.0044fda0
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
cmp ebx, 0xffffffff
je 0x450d77
add dword [eax + 0x34], ebx
jmp 0x450d7c
mov ecx, dword [edi]
add dword [eax + 0x34], ecx
mov edx, dword [esp + 0x1c]
inc dword [esp + 0x14]
add eax, 0x40
mov dword [esp + 0x10], eax
cmp dword [edx + 0x3c], esi
jne 0x450d9b
cmp ebx, 0xffffffff
je 0x450e52
jmp 0x450df3
cmp ebx, 0xffffffff
jne 0x450df3
mov esi, dword [edi]
test esi, esi
je 0x450df1
cmp dword [ebp + 0x145c4], esi
jae 0x450dd8
mov eax, dword [ebp + 0x145c0]
push esi
push eax
call fcn.004b024f
add esp, 8
mov dword [ebp + 0x145c0], eax
test eax, eax
jne 0x450dd2
mov ecx, 0x5072f4
call fcn.0042cb70
mov dword [ebp + 0x145c4], esi
mov ecx, dword [edi]
mov edx, dword [esp + 0x6c]
mov eax, dword [edx]
push ecx
mov ecx, dword [ebp + 0x145c0]
push eax
push ecx
call fcn.004b04f0
add esp, 0xc
mov ebx, dword [edi]
mov edx, dword [esp + 0x1c]
mov esi, dword [edx + 0x38]
add esi, ebx
cmp dword [ebp + 0x145c4], esi
jae 0x450e2e
mov eax, dword [ebp + 0x145c0]
push esi
push eax
call fcn.004b024f
add esp, 8
mov dword [ebp + 0x145c0], eax
test eax, eax
jne 0x450e28
mov ecx, 0x5072f4
call fcn.0042cb70
mov dword [ebp + 0x145c4], esi
mov esi, dword [esp + 0x1c]
mov ecx, dword [esi + 0x38]
mov edx, dword [esi + 0x3c]
mov eax, dword [ebp + 0x145c0]
push ecx
push edx
add eax, ebx
push eax
call fcn.004b04f0
add esp, 0xc
add ebx, dword [esi + 0x38]
mov dword [esp + 0x18], ebx
mov esi, dword [edi + 4]
mov eax, dword [esp + 0x20]
add esi, dword [edi]
inc eax
add edi, 0x10
mov dword [esp + 0x20], eax
cmp eax, dword [ebp + 0x4524]
jb 0x450c10
cmp ebx, 0xffffffff
je 0x450ef1
mov ecx, dword [esp + 0x70]
mov edi, dword [ecx]
sub edi, esi
test edi, edi
jle 0x450edf
lea eax, [edi + ebx]
mov dword [esp + 0x74], eax
cmp dword [ebp + 0x145c4], eax
jae 0x450ebd
mov edx, dword [ebp + 0x145c0]
push eax
push edx
call fcn.004b024f
add esp, 8
mov dword [ebp + 0x145c0], eax
test eax, eax
jne 0x450eb3
mov ecx, 0x5072f4
call fcn.0042cb70
mov eax, dword [esp + 0x74]
mov dword [ebp + 0x145c4], eax
mov ecx, dword [esp + 0x6c]
mov edx, dword [ecx]
mov eax, dword [ebp + 0x145c0]
push edi
add edx, esi
push edx
add eax, ebx
push eax
call fcn.004b04f0
mov ebx, dword [esp + 0x80]
add esp, 0xc
mov ecx, dword [ebp + 0x145c0]
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x70]
mov dword [edx], ecx
mov dword [eax], ebx
mov ecx, dword [esp + 0x14]
lea eax, [ecx - 1]
xor edx, edx
mov dword [esp + 0x70], eax
test eax, eax
jle 0x450fc3
lea eax, [edx + 1]
cmp eax, ecx
mov esi, edx
jge 0x450fb4
mov ecx, edx
shl ecx, 6
lea edi, [ecx + ebp]
mov ecx, eax
shl ecx, 6
lea ecx, [ecx + ebp + 0x4560]
jmp 0x450f30
mov ebx, dword [edi + 0x455c]
cmp dword [ecx - 4], ebx
jne 0x450f51
mov ebx, dword [ecx]
cmp ebx, dword [edi + 0x4560]
jne 0x450f51
mov esi, eax
inc eax
add ecx, 0x40
cmp eax, dword [esp + 0x14]
jl 0x450f30
mov dword [esp + 0x6c], esi
cmp esi, edx
je 0x450fb4
mov eax, esi
sub eax, edx
inc eax
cdq
sub eax, edx
mov ecx, eax
sar ecx, 1
test ecx, ecx
jle 0x450fb0
mov eax, esi
shl eax, 6
lea edx, [edi + 0x4528]
lea eax, [eax + ebp + 0x4528]
mov ebx, ecx
lea ecx, [ecx]
mov esi, edx
mov ecx, 0x10
lea edi, [esp + 0x28]
rep movsd dword es:[edi], dword [esi]
mov esi, eax
mov edi, edx
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
mov edi, eax
mov ecx, 0x10
lea esi, [esp + 0x28]
add edx, 0x40
sub eax, 0x40
sub ebx, 1
rep movsd dword es:[edi], dword [esi]
jne 0x450f80
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x14]
inc edx
cmp edx, dword [esp + 0x70]
jl 0x450f06
test ecx, ecx
jle 0x4512ef
lea edx, [ebp + 0x4528]
mov dword [esp + 0x74], edx
mov dword [esp + 0x1c], ecx
lea esp, [esp]
mov esi, dword [ebp + 0x145a8]
mov edi, dword [esp + 0x74]
xor eax, eax
mov byte [esp + 0x70], 1
test esi, esi
jle 0x451019
mov edx, dword [edi]
lea ecx, [ebp + 0x14528]
lea ecx, [ecx]
cmp dword [ecx], edx
je 0x451012
inc eax
add ecx, 4
cmp eax, dword [ebp + 0x145a8]
jl 0x451000
jmp 0x451019
mov esi, eax
mov byte [esp + 0x70], 0
lea ebx, [ebp + 0x145c8]
mov ecx, ebx
call fcn.0045a930
cmp byte [ebp + 0x145b0], 0
mov byte [esp + 0x6c], 0
je 0x451069
xor esi, esi
push esi
push 2
mov ecx, ebx
mov byte [esp + 0x74], 0x80
call fcn.0045ac50
push esi
push 4
mov ecx, ebx
call fcn.0045ac50
mov byte [esp + 0x70], 1
mov dword [ebp + 0x145a8], esi
mov dword [ebp + 0x145ac], esi
mov byte [ebp + 0x145b0], 0
jmp 0x451070
cmp byte [esp + 0x70], 0
je 0x451085
mov eax, dword [ebp + 0x145a8]
mov ecx, dword [edi]
mov dword [ebp + eax*4 + 0x14528], ecx
inc dword [ebp + 0x145a8]
cmp esi, dword [ebp + 0x145ac]
je 0x45109d
or byte [esp + 0x6c], 0x80
lea edx, [esi + 1]
push edx
mov ecx, ebp
call fcn.0044f0d0
mov dword [ebp + 0x145ac], esi
mov eax, dword [edi + 0x34]
sub eax, dword [ebp + 0x165f8]
add eax, dword [ebp + 0x508]
and eax, dword [ebp + 0x500]
cmp eax, 0x102
jb 0x4510c9
or byte [esp + 0x6c], 0x40
sub eax, 0x102
push eax
mov ecx, ebp
call fcn.0044f0d0
cmp byte [esp + 0x70], 0
jne 0x4510e4
mov eax, dword [ebp + esi*4 + 0x14568]
cmp eax, dword [edi + 0x38]
je 0x4510f4
mov ecx, dword [edi + 0x38]
or byte [esp + 0x6c], 0x20
push ecx
mov ecx, ebp
call fcn.0044f0d0
mov edx, dword [edi + 0x38]
mov dword [ebp + esi*4 + 0x14568], edx
mov al, byte [edi + 4]
test al, al
je 0x451142
or byte [esp + 0x6c], 0x10
movzx eax, al
push eax
push 7
mov ecx, ebx
call fcn.0045ac50
mov ebx, 1
lea esi, [edi + 8]
mov dword [esp + 0x20], 7
test byte [edi + 4], bl
je 0x451136
mov ecx, dword [esi]
push ecx
mov ecx, ebp
call fcn.0044f0d0
add esi, 4
rol ebx, 1
sub dword [esp + 0x20], 1
jne 0x451127
cmp byte [esp + 0x70], 0
je 0x45117b
mov edx, dword [edi + 0x28]
push edx
mov ecx, ebp
call fcn.0044f0d0
xor esi, esi
cmp dword [edi + 0x28], esi
jle 0x45117b
jmp 0x451160
mov eax, dword [edi + 0x24]
movzx ecx, byte [eax + esi]
push ecx
push 8
lea ecx, [ebp + 0x145c8]
call fcn.0045ac50
inc esi
cmp esi, dword [edi + 0x28]
jl 0x451160
mov eax, dword [edi + 0x30]
test eax, eax
je 0x4511b1
or byte [esp + 0x6c], 8
push eax
mov ecx, ebp
call fcn.0044f0d0
xor esi, esi
cmp dword [edi + 0x30], esi
jle 0x4511b1
mov edx, dword [edi + 0x2c]
movzx eax, byte [edx + esi]
push eax
push 8
lea ecx, [ebp + 0x145c8]
call fcn.0045ac50
inc esi
cmp esi, dword [edi + 0x30]
jl 0x451196
lea ecx, [ebp + 0x145c8]
call fcn.0045abb0
mov ebx, dword [ebp + 0x145dc]
cmp ebx, 6
ja 0x4511d1
mov cl, bl
dec cl
or byte [esp + 0x6c], cl
jmp 0x4511e5
cmp ebx, 0x106
ja 0x4511e0
or byte [esp + 0x6c], 6
jmp 0x4511e5
or byte [esp + 0x6c], 7
cmp dword [ebp + 0x518], 2
jne 0x45126a
mov edx, dword [ebp + 0x1b200]
lea esi, [ebp + 0x1660c]
push edx
mov ecx, esi
call fcn.00479ef0
push 3
mov ecx, esi
call fcn.00479ef0
movzx eax, byte [esp + 0x6c]
push eax
mov ecx, esi
call fcn.00479ef0
cmp ebx, 6
jbe 0x451247
cmp ebx, 0x106
ja 0x45122b
lea ecx, [ebx - 7]
push ecx
jmp 0x451240
mov edx, ebx
shr edx, 8
push edx
mov ecx, esi
call fcn.00479ef0
mov eax, ebx
and eax, 0xff
push eax
mov ecx, esi
call fcn.00479ef0
xor edi, edi
test ebx, ebx
jbe 0x4512df
mov ecx, dword [ebp + 0x145d8]
movzx edx, byte [ecx + edi]
push edx
mov ecx, esi
call fcn.00479ef0
inc edi
cmp edi, ebx
jb 0x451251
jmp 0x4512df
lea eax, [ebx + 0x14]
lea esi, [ebp + 0x1b6b4]
push eax
mov ecx, esi
call fcn.0041c670
mov ecx, dword [esi + 0x10]
mov edx, dword [esi + 8]
lea eax, [edx + ecx*8]
mov cl, byte [esp + 0x6c]
mov byte [eax], 7
mov byte [eax + 1], cl
mov dword [eax + 4], ebx
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0xc]
jb 0x4512a3
mov ecx, esi
call fcn.0041c2d0
xor edi, edi
test ebx, ebx
jbe 0x4512df
lea esp, [esp]
mov edx, dword [ebp + 0x145d8]
mov cl, byte [edi + edx]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 8]
lea eax, [edx + eax*8]
mov byte [eax], 8
mov byte [eax + 4], cl
inc dword [esi + 0x10]
mov eax, dword [esi + 0x10]
cmp eax, dword [esi + 0xc]
jb 0x4512da
mov ecx, esi
call fcn.0041c2d0
inc edi
cmp edi, ebx
jb 0x4512b0
add dword [esp + 0x74], 0x40
sub dword [esp + 0x1c], 1
jne 0x450fe0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x58
ret 0xc