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

Disassembly:
sub esp, 0x11c
or eax, 0xffffffff
push ebx
mov ebx, dword [esp + 0x12c]
push ebp
mov dword [esp + 0x14], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x138]
push esi
mov esi, dword [esp + 0x140]
xor edx, edx
test esi, 0xfa0f5a6f
lea ebp, [ebx + eax]
push edi
mov edi, dword [esp + 0x130]
lea ecx, [ebp - 1]
mov dword [esp + 0x28], edx
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc4], edx
mov dword [esp + 0xb4], edx
mov dword [esp + 0xd4], ecx
mov dword [esp + 0x24], edi
je 0x450fcd
pop edi
pop esi
pop ebp
lea eax, [edx - 3]
pop ebx
add esp, 0x11c
ret
cmp edi, edx
je 0x451b41
cmp ebx, edx
je 0x451b41
cmp dword [esp + 0x148], edx
mov eax, dword [esp + 0x14c]
jne 0x450ff5
cmp eax, edx
jg 0x451b41
cmp eax, edx
jge 0x451009
pop edi
pop esi
pop ebp
mov eax, 0xfffffff1
pop ebx
add esp, 0x11c
ret
mov eax, 0x989680
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x134]
cmp eax, edx
mov dword [esp + 0x18], edx
mov dword [esp + 0xb0], edx
je 0x45107c
mov ecx, dword [eax]
test cl, 1
je 0x451043
mov edx, dword [eax + 4]
mov dword [esp + 0x18], edx
xor edx, edx
test cl, 2
je 0x451051
mov edx, dword [eax + 8]
mov dword [esp + 0x34], edx
xor edx, edx
test cl, 0x10
je 0x45105f
mov edx, dword [eax + 0x14]
mov dword [esp + 0x38], edx
xor edx, edx
test cl, 4
je 0x451070
mov edx, dword [eax + 0xc]
mov dword [esp + 0xb0], edx
xor edx, edx
test cl, 8
je 0x45107c
mov eax, dword [eax + 0x10]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x14], edx
jne 0x45108a
mov dword [esp + 0x14], 0x484438
cmp dword [edi], 0x50435245
je 0x4510da
mov edx, dword [esp + 0x18]
lea ecx, [esp + 0xdc]
push ecx
push edx
lea eax, [esp + 0x10c]
push eax
push edi
call fcn.00452580
add esp, 0x10
test eax, eax
mov dword [esp + 0x24], eax
jne 0x4510c8
pop edi
pop esi
pop ebp
mov eax, 0xfffffffc
pop ebx
add esp, 0x11c
ret
cmp dword [esp + 0x18], 0
je 0x4510da
lea ecx, [esp + 0xdc]
mov dword [esp + 0x18], ecx
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 8]
mov ecx, eax
or ecx, esi
shr ecx, 4
and ecx, 1
mov dword [esp + 0xc0], ecx
movzx ecx, byte [edx + 0xc]
shr ecx, 3
and ecx, 1
mov dword [esp + 0xd0], ecx
movzx ecx, word [edx + 0x1c]
shr eax, 0x12
and eax, 1
mov dword [esp + 0xb8], eax
movzx eax, word [edx + 0x1a]
imul ecx, eax
movzx eax, word [edx + 0x18]
add ecx, edi
mov edi, dword [esp + 0x13c]
add eax, ecx
mov ecx, dword [esp + 0x140]
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x84], eax
lea eax, [ebx + edi]
mov dword [esp + 0x8c], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x88], ebx
mov eax, dword [edx + 8]
shr eax, 5
and eax, 1
mov dword [esp + 0x70], eax
mov eax, dword [edx + 8]
shr eax, 0xb
and eax, 1
mov dword [esp + 0x68], eax
mov ecx, dword [edx + 8]
shr ecx, 0x19
and ecx, 1
mov dword [esp + 0x6c], ecx
mov ecx, esi
shr ecx, 7
and ecx, 1
mov dword [esp + 0x60], ecx
mov ecx, esi
shr ecx, 8
and ecx, 1
mov dword [esp + 0x64], ecx
mov ecx, esi
shr ecx, 0xa
and ecx, 1
mov dword [esp + 0x74], ecx
mov ecx, esi
shr ecx, 0xf
and ecx, 1
mov dword [esp + 0x78], ecx
xor ecx, ecx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x54], ecx
add ecx, 0x340
mov dword [esp + 0x58], ecx
mov ecx, esi
and ecx, 0x1800000
mov dword [esp + 0x20], eax
je 0x451205
cmp ecx, 0x800000
je 0x4511f8
cmp ecx, 0x1000000
je 0x45121f
pop edi
pop esi
pop ebp
mov eax, 0xffffffe9
pop ebx
add esp, 0x11c
ret
mov dword [esp + 0x80], 1
jmp 0x45122a
mov ecx, dword [edx + 8]
test ecx, 0x1800000
je 0x45121f
shr ecx, 0x17
and ecx, 1
mov dword [esp + 0x80], ecx
jmp 0x45122a
mov dword [esp + 0x80], 0
test esi, 0x700000
jne 0x451237
mov ecx, dword [edx + 8]
jmp 0x451239
mov ecx, esi
and ecx, 0x700000
cmp ecx, 0x300000
ja 0x451297
je 0x451290
test ecx, ecx
je 0x45125d
cmp ecx, 0x100000
je 0x451289
cmp ecx, 0x200000
jne 0x4511e8
mov ecx, 0xa
cmp ecx, 0xff
mov dword [esp + 0x48], 0
jle 0x4512bf
mov edx, ecx
sar edx, 8
mov dword [esp + 0x4c], 2
mov byte [esp + 0x50], dl
mov byte [esp + 0x51], cl
jmp 0x4512cb
mov ecx, 0xd
jmp 0x451262
mov ecx, 0xd0a
jmp 0x451262
cmp ecx, 0x400000
je 0x4512b5
cmp ecx, 0x500000
jne 0x4511e8
mov dword [esp + 0x48], 2
jmp 0x4512cb
mov dword [esp + 0x48], 1
jmp 0x4512cb
mov dword [esp + 0x4c], 1
mov byte [esp + 0x50], cl
cmp dword [esp + 0x78], 0
je 0x4512ec
mov edx, dword [esp + 0x24]
test byte [edx + 0xc], 1
je 0x4512ec
pop edi
pop esi
pop ebp
mov eax, 0xfffffff3
pop ebx
add esp, 0x11c
ret
test eax, eax
je 0x45134c
test esi, 0x2000
jne 0x45134c
push edi
push ebx
call fcn.00452270
add esp, 8
test eax, eax
jl 0x451316
pop edi
pop esi
pop ebp
mov eax, 0xfffffff6
pop ebx
add esp, 0x11c
ret
mov eax, dword [esp + 0x140]
test eax, eax
jle 0x45134c
cmp eax, edi
jge 0x45134c
movzx eax, byte [ebp]
cmp eax, 0x7f
jle 0x45134c
and eax, 0xc0
je 0x45134c
cmp eax, 0xc0
je 0x45134c
pop edi
pop esi
pop ebp
mov eax, 0xfffffff5
pop ebx
add esp, 0x11c
ret
mov ebx, dword [esp + 0x24]
mov eax, dword [ebx + 8]
and eax, 7
mov dword [esp + 0xd8], eax
mov eax, 0x55555556
imul dword [esp + 0x14c]
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edi, [eax + eax*2]
movzx eax, word [ebx + 0x12]
test ax, ax
jbe 0x4513c8
movzx ecx, ax
mov eax, 0x55555556
imul edi
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ecx, eax
jl 0x4513c8
lea edi, [ecx + ecx*2 + 3]
lea ecx, [edi*4]
push ecx
call dword [0x516080]
add esp, 4
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x4513be
pop edi
pop esi
pop ebp
mov eax, 0xfffffffa
pop ebx
add esp, 0x11c
ret
mov dword [esp + 0x28], 1
jmp 0x4513d3
mov edx, dword [esp + 0x148]
mov dword [esp + 0x3c], edx
lea ecx, [edi + edi]
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x5c], 0
mov dword [esp + 0x9c], 0xffffffff
movzx eax, word [ebx + 0x10]
lea eax, [eax + eax + 2]
cmp eax, dword [esp + 0x14c]
mov dword [esp + 0x2c], eax
jle 0x451418
mov dword [esp + 0x2c], edi
cmp dword [esp + 0x3c], 0
je 0x45144d
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
cdq
sub eax, edx
sar eax, 1
mov edx, 1
lea ecx, [ecx + edi*4]
sub edx, eax
lea eax, [ecx + edx*4]
sub ecx, 4
cmp ecx, eax
jb 0x45144d
mov dword [ecx], 0xffffffff
sub ecx, 4
cmp ecx, eax
jae 0x451440
cmp dword [esp + 0xc0], 0
jne 0x4514ac
test byte [ebx + 0xc], 2
je 0x45148a
movzx eax, word [ebx + 0x14]
mov ecx, eax
and ecx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xbc], eax
je 0x4514ac
mov eax, dword [esp + 0x54]
movzx ecx, byte [eax + ecx]
mov dword [esp + 0x1c], ecx
jmp 0x4514ac
cmp dword [esp + 0xd0], 0
jne 0x4514ac
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4514ac
test byte [eax + 4], 1
je 0x4514ac
add eax, 8
mov dword [esp + 0xb4], eax
test byte [ebx + 0xc], 4
je 0x4514e5
movzx eax, word [ebx + 0x16]
mov edx, dword [esp + 0x14]
mov ecx, eax
and ecx, 0xff
shr eax, 8
and eax, 1
mov dword [esp + 0xc4], eax
movzx eax, byte [edx + ecx + 0x100]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x4c]
and esi, 0x4000000
mov dword [esp + 0x18], esi
lea ebx, [ebx]
mov edi, dword [esp + 0x3c]
test edi, edi
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x88]
mov dword [esp + 0x14], esi
je 0x451544
mov ecx, dword [esp + 0x2c]
lea ecx, [edi + ecx*4]
cmp edi, ecx
jae 0x451544
sub ecx, edi
sub ecx, 1
shr ecx, 2
add ecx, 1
or eax, 0xffffffff
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x4c]
cmp dword [esp + 0xb8], 0
je 0x45164b
cmp dword [esp + 0x20], 0
mov esi, ebp
je 0x4515e7
cmp ebp, eax
jae 0x451647
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x48]
nop
test ecx, ecx
je 0x4515a2
mov edx, dword [esp + 0x20]
push edx
lea edx, [esp + 0x50]
push edx
push eax
push ecx
push esi
call fcn.00451f80
mov ebx, dword [esp + 0x60]
add esp, 0x14
test eax, eax
jne 0x451640
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x48]
jmp 0x4515c4
mov edx, eax
sub edx, ebx
cmp esi, edx
ja 0x4515c4
mov dl, byte [esp + 0x50]
cmp byte [esi], dl
jne 0x4515c4
cmp ebx, 1
je 0x451640
mov dl, byte [esi + 1]
cmp dl, byte [esp + 0x51]
je 0x451640
add esi, 1
cmp esi, edi
jae 0x4515e1
jmp 0x4515d0
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x4515e1
add esi, 1
cmp esi, edi
jb 0x4515d0
cmp esi, eax
jb 0x451570
jmp 0x451640
cmp ebp, eax
jae 0x451647
mov edi, dword [esp + 0x48]
nop
test edi, edi
je 0x45161b
push 0
lea ecx, [esp + 0x50]
push ecx
push eax
push edi
push esi
call fcn.00451f80
mov ebx, dword [esp + 0x60]
add esp, 0x14
test eax, eax
jne 0x451640
mov eax, dword [esp + 0x8c]
mov edi, dword [esp + 0x48]
jmp 0x451639
mov edx, eax
sub edx, ebx
cmp esi, edx
ja 0x451639
mov cl, byte [esp + 0x50]
cmp byte [esi], cl
jne 0x451639
cmp ebx, 1
je 0x451640
mov dl, byte [esp + 0x51]
cmp byte [esi + 1], dl
je 0x451640
add esi, 1
cmp esi, eax
jb 0x4515f0
mov edx, dword [esp + 0x88]
mov dword [esp + 0x10], esi
cmp dword [esp + 0x18], 0
jne 0x451834
cmp dword [esp + 0x1c], 0
jl 0x4516ba
cmp dword [esp + 0xbc], 0
je 0x451692
cmp ebp, esi
jae 0x451834
nop
movzx eax, byte [ebp]
mov ecx, dword [esp + 0x54]
movzx edx, byte [eax + ecx]
cmp edx, dword [esp + 0x1c]
je 0x451834
add ebp, 1
cmp ebp, esi
jb 0x451670
jmp 0x451834
cmp ebp, esi
jae 0x451834
lea ebx, [ebx]
movzx eax, byte [ebp]
cmp eax, dword [esp + 0x1c]
je 0x451834
add ebp, 1
cmp ebp, esi
jb 0x4516a0
jmp 0x451834
cmp dword [esp + 0xd0], 0
je 0x451804
mov ecx, dword [esp + 0x140]
lea eax, [edx + ecx]
cmp ebp, eax
jbe 0x451834
cmp dword [esp + 0x20], 0
je 0x45177c
cmp ebp, esi
jae 0x4517e1
lea ecx, [ecx]
mov eax, dword [esp + 0x48]
test eax, eax
je 0x451726
cmp ebp, edx
jbe 0x451753
mov ecx, dword [esp + 0x20]
push ecx
lea ecx, [esp + 0x50]
push ecx
push edx
push eax
push ebp
call fcn.004520b0
add esp, 0x14
test eax, eax
jne 0x4517e1
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x4c]
jmp 0x451753
lea eax, [ebx + edx]
cmp ebp, eax
jb 0x451753
mov cl, byte [esp + 0x50]
mov eax, ebp
sub eax, ebx
cmp byte [eax], cl
jne 0x45174f
cmp ebx, 1
je 0x4517dd
mov cl, byte [esp + 0x51]
cmp byte [eax + 1], cl
je 0x4517dd
mov esi, dword [esp + 0x10]
add ebp, 1
cmp ebp, esi
jae 0x4517e1
mov edi, edi
mov al, byte [ebp]
and al, 0xc0
cmp al, 0x80
jne 0x451772
add ebp, 1
cmp ebp, esi
jb 0x451760
jmp 0x4517e1
cmp ebp, esi
jb 0x4516f0
jmp 0x4517e1
cmp ebp, esi
jae 0x4517e1
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4517af
cmp ebp, edx
jbe 0x4517d4
push 0
lea ecx, [esp + 0x50]
push ecx
push edx
push eax
push ebp
call fcn.004520b0
add esp, 0x14
test eax, eax
jne 0x4517e1
mov edx, dword [esp + 0x88]
mov ebx, dword [esp + 0x4c]
jmp 0x4517d4
lea eax, [ebx + edx]
cmp ebp, eax
jb 0x4517d4
mov cl, byte [esp + 0x50]
mov eax, ebp
sub eax, ebx
cmp byte [eax], cl
jne 0x4517d0
cmp ebx, 1
je 0x4517dd
mov cl, byte [esp + 0x51]
cmp byte [eax + 1], cl
je 0x4517dd
mov esi, dword [esp + 0x10]
add ebp, 1
cmp ebp, esi
jb 0x451780
jmp 0x4517e1
mov esi, dword [esp + 0x10]
cmp byte [ebp - 1], 0xd
jne 0x451834
mov eax, dword [esp + 0x48]
cmp eax, 1
je 0x4517f5
cmp eax, 2
jne 0x451834
cmp ebp, esi
jae 0x451834
cmp byte [ebp], 0xa
jne 0x451834
add ebp, 1
jmp 0x451834
mov edi, dword [esp + 0xb4]
test edi, edi
je 0x451834
cmp ebp, esi
jae 0x451834
movzx eax, byte [ebp]
mov ecx, eax
and ecx, 7
mov edx, 1
shl edx, cl
shr eax, 3
mov al, byte [eax + edi]
test al, dl
jne 0x451834
add ebp, 1
cmp ebp, esi
jb 0x451813
cmp dword [esp + 0x18], 0
mov esi, dword [esp + 0x14]
mov dword [esp + 0x10], esi
jne 0x451900
mov edx, dword [esp + 0xc8]
test edx, edx
jl 0x451900
mov ecx, esi
sub ecx, ebp
cmp ecx, 0x3e8
jge 0x451900
cmp dword [esp + 0x78], 0
jne 0x451900
xor eax, eax
cmp dword [esp + 0x1c], eax
setge al
add eax, ebp
cmp eax, dword [esp + 0xd4]
jbe 0x451900
cmp dword [esp + 0xc4], 0
je 0x4518de
cmp eax, esi
jae case.0x451951.999
mov edi, dword [esp + 0xcc]
mov edi, edi
movzx ecx, byte [eax]
add eax, 1
cmp ecx, edx
je 0x4518f2
cmp ecx, edi
je 0x4518f2
cmp eax, esi
jb 0x4518a0
xor edi, edi
cmp dword [esp + 0x28], 0
je 0x4518c9
mov eax, dword [esp + 0x3c]
push eax
call dword [0x516084]
add esp, 4
test edi, edi
je 0x451b15
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret
cmp eax, esi
jae case.0x451951.999
movzx ecx, byte [eax]
add eax, 1
cmp ecx, edx
je 0x4518f2
cmp eax, esi
jb 0x4518e2
jmp case.0x451951.999
sub eax, 1
cmp eax, esi
jae case.0x451951.999
mov dword [esp + 0xd4], eax
mov edx, dword [esp + 0xd8]
mov ecx, dword [esp + 0x84]
push 0
push 0
push 0
push edx
lea eax, [esp + 0x40]
push eax
push 2
push ebp
push ecx
push ebp
mov dword [esp + 0xb4], ebp
mov dword [esp + 0x54], 0
call fcn.0044ac30
mov edi, eax
add esp, 0x24
test edi, edi
jg case.default.0x451951
je case.0x451951.998
lea eax, [edi + 0x3e7]
cmp eax, 3
ja case.default.0x451951
jmp dword [eax*4 + 0x451b54]
mov esi, dword [esp + 0x90]
jmp 0x451984
cmp dword [esp + 0x20], 0
lea esi, [ebp + 1]
je 0x451984
mov eax, dword [esp + 0x14]
cmp esi, eax
jae 0x451984
mov dl, byte [esi]
and dl, 0xc0
cmp dl, 0x80
jne 0x451984
add esi, 1
cmp esi, eax
jb 0x451973
mov eax, dword [esp + 0x8c]
xor edi, edi
cmp dword [esp + 0xb8], edi
je 0x4519ca
mov ecx, dword [esp + 0x48]
test ecx, ecx
je 0x451a32
cmp ebp, eax
jae 0x4519ca
mov edx, dword [esp + 0x20]
push edx
lea edx, [esp + 0x50]
push edx
push eax
push ecx
push ebp
call fcn.00451f80
add esp, 0x14
test eax, eax
jne 0x4518b4
mov eax, dword [esp + 0x8c]
mov ebx, dword [esp + 0x4c]
cmp dword [esp + 0xc0], 0
mov ebp, esi
jne 0x4518b4
cmp esi, dword [esp + 0x14]
ja 0x4518b4
cmp byte [esi - 1], 0xd
jne 0x451500
cmp esi, dword [esp + 0x14]
jae 0x451500
cmp byte [esi], 0xa
jne 0x451500
mov edx, dword [esp + 0x24]
test byte [edx + 0xc], 0x20
jne 0x451500
mov ecx, dword [esp + 0x48]
cmp ecx, 1
je 0x451a2a
cmp ecx, 2
je 0x451a2a
cmp ebx, 2
jne 0x451500
lea ebp, [esi + 1]
jmp 0x451500
mov ebx, dword [esp + 0x4c]
mov ecx, eax
sub ecx, ebx
cmp ebp, ecx
ja 0x4519ce
mov dl, byte [esp + 0x50]
cmp byte [ebp], dl
jne 0x4519ce
cmp ebx, 1
je 0x4518b4
mov cl, byte [esp + 0x51]
cmp byte [ebp + 1], cl
je 0x4518b4
jmp 0x4519ce
cmp edi, 1
jne 0x4518b4
cmp dword [esp + 0x28], 0
mov esi, dword [esp + 0x14c]
je 0x451abc
cmp esi, 4
mov edi, dword [esp + 0x3c]
jl 0x451aa1
mov edx, dword [esp + 0x148]
lea eax, [esi*4 - 8]
push eax
lea ecx, [edi + 8]
push ecx
add edx, 8
push edx
call sub.MSVCRT.dll_memcpy
add esp, 0xc
cmp dword [esp + 0x98], esi
jle 0x451ab2
mov dword [esp + 0x5c], 1
push edi
call dword [0x516084]
add esp, 4
cmp dword [esp + 0x5c], 0
je 0x451ac7
xor eax, eax
jmp 0x451ad3
mov eax, dword [esp + 0x98]
cdq
sub eax, edx
sar eax, 1
cmp esi, 2
jge 0x451ae5
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x11c
ret
mov ecx, dword [esp + 0x88]
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0x148]
sub esi, ecx
mov dword [edx], esi
mov esi, dword [esp + 0x94]
sub esi, ecx
pop edi
mov dword [edx + 4], esi
pop esi
pop ebp
pop ebx
add esp, 0x11c
ret
cmp dword [esp + 0x78], 0
je 0x451b33
cmp dword [esp + 0x7c], 0
je 0x451b33
pop edi
pop esi
pop ebp
mov eax, 0xfffffff4
pop ebx
add esp, 0x11c
ret
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x11c
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffffffe
pop ebx
add esp, 0x11c
ret