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

Disassembly:
sub esp, 0x108
push ebx
push ebp
mov ebp, dword [esp + 0x118]
push esi
mov esi, dword [esp + 0x118]
push edi
mov edi, dword [esi + 0x72b0]
lea ecx, [edx + eax]
mov eax, dword [esp + 0x124]
mov dword [esp + 0x80], edi
mov edi, dword [esi + 0x72b4]
mov dword [esp + 0x20], ecx
lea ecx, [eax + ebp]
mov eax, dword [esi + 0x7380]
mov dword [esp + 0x94], edi
mov edi, dword [esi + 0x72b8]
mov dword [esp + 0x24], ecx
mov ecx, dword [esi + 0x7370]
mov dword [esp + 0x8c], edi
mov edi, dword [esp + 0x128]
add eax, ecx
mov ebx, ebp
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x88], eax
test edi, edi
je 0x4510a0
cmp edi, 4
mov dword [esp + 0x90], edi
jl 0x450159
mov dword [esp + 0x90], 4
mov edi, dword [esp + 0x20]
mov dword [esi + 0x7304], 1
mov eax, dword [esi + 0x682c]
mov ecx, dword [esi + 0x6830]
mov dword [esp + 0x54], eax
mov eax, dword [esi + 0x6834]
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x80]
sub ebp, eax
mov dword [esp + 0x64], ecx
sub edi, edx
lea ecx, [esp + 0x28]
mov dword [esp + 0x60], eax
mov dword [esp + 0x68], ebp
call fcn.00451bd0
cmp eax, 0xffffff88
jbe 0x4501c1
mov eax, 0xffffffec
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret
mov eax, dword [esp + 0x2c]
mov edi, dword [esi]
mov edx, dword [edi + 4]
lea ebx, [edx + eax]
mov eax, dword [esp + 0x28]
mov ecx, ebx
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], ebx
and eax, dword [edx*4 + 0x6bbec0]
mov dword [esp + 0x3c], eax
call fcn.004428b0
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
add edi, 8
mov dword [esp + 0x40], edi
mov edi, dword [esi + 8]
mov edx, dword [edi + 4]
lea ebx, [edx + ecx]
mov ecx, ebx
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], ebx
and eax, dword [edx*4 + 0x6bbec0]
mov dword [esp + 0x44], eax
call fcn.004428b0
mov eax, dword [esp + 0x2c]
mov esi, dword [esi + 4]
mov edx, dword [esi + 4]
add edi, 8
mov dword [esp + 0x48], edi
lea edi, [edx + eax]
mov eax, dword [esp + 0x28]
mov ecx, edi
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], edi
and eax, dword [edx*4 + 0x6bbec0]
mov dword [esp + 0x4c], eax
call fcn.004428b0
add esi, 8
mov dword [esp + 0x50], esi
mov dword [esp + 0x1c], 0
call fcn.004428b0
cmp eax, 2
jg 0x4505dd
lea ebp, [esp + 0xd8]
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x90]
jge 0x4505ee
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x3c]
mov ecx, dword [eax + edx*8]
mov ebx, dword [eax + edx*8 + 4]
mov esi, dword [esp + 0x4c]
mov eax, dword [esp + 0x50]
mov edx, dword [eax + esi*8]
mov eax, dword [eax + esi*8 + 4]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x44]
mov dword [esp + 0xc4], eax
mov eax, dword [esi + edi*8]
mov edi, dword [esi + edi*8 + 4]
mov dword [esp + 0x98], eax
mov dword [esp + 0x74], ecx
mov dword [esp + 0xc0], edx
shr ecx, 0x10
shr edx, 0x10
shr eax, 0x10
mov dword [esp + 0x78], ebx
mov byte [esp + 0x13], cl
mov byte [esp + 0x7f], dl
cmp al, 1
jbe 0x4503c1
cmp dword [esp + 0x12c], 0
je 0x450377
cmp al, 0x19
jb 0x450377
mov ebx, dword [esp + 0x2c]
mov ecx, 0x20
movzx eax, al
sub ecx, ebx
cmp eax, ecx
jae 0x45031e
mov ecx, eax
mov esi, eax
sub esi, ecx
sub eax, esi
mov edx, eax
mov eax, dword [esp + 0x28]
mov ecx, ebx
and ecx, 0x1f
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, esi
add ebx, edx
mov dword [esp + 0x2c], ebx
shl eax, cl
lea ecx, [esp + 0x28]
add eax, edi
mov ebx, eax
call fcn.004428b0
test esi, esi
je 0x4503a3
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, edx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
add edx, esi
mov dword [esp + 0x2c], edx
add ebx, eax
jmp 0x4503a3
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov ecx, edx
and ecx, 0x1f
shl ebx, cl
movzx eax, al
mov ecx, eax
neg ecx
and ecx, 0x1f
shr ebx, cl
add edx, eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], edx
add ebx, edi
call fcn.004428b0
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x28]
mov dword [esp + 0x58], edx
mov dl, byte [esp + 0x7f]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x54], ebx
jmp 0x45043d
mov esi, dword [esp + 0x28]
xor ecx, ecx
test ebx, ebx
sete cl
mov dword [esp + 0x20], ecx
test al, al
jne 0x4503f0
test ecx, ecx
jne 0x4503de
mov ebx, dword [esp + 0x54]
jmp 0x45043d
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ebx
jmp 0x45043d
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
and ecx, 0x1f
mov eax, esi
shl eax, cl
mov ecx, dword [esp + 0x20]
inc ebx
mov dword [esp + 0x2c], ebx
shr eax, 0x1f
add eax, ecx
mov ecx, dword [esp + 0x54]
add eax, edi
lea edi, [ecx - 1]
cmp eax, 3
je 0x45041d
mov edi, dword [esp + eax*4 + 0x54]
xor ebx, ebx
test edi, edi
sete bl
add edi, ebx
cmp eax, 1
je 0x450433
mov eax, dword [esp + 0x58]
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], ecx
mov ebx, edi
mov dword [esp + 0x54], edi
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xa4], ecx
test dl, dl
jbe 0x450480
mov ecx, dword [esp + 0x2c]
and ecx, 0x1f
movzx edi, dl
mov eax, esi
shl eax, cl
mov ecx, edi
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, edi
add dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xc4]
add eax, ecx
mov dword [esp + 0x20], edi
mov dword [esp + 0xa4], eax
movzx edi, byte [esp + 0x13]
movzx edx, dl
add edx, edi
cmp edx, 0x14
jl 0x45049c
lea ecx, [esp + 0x28]
call fcn.004428b0
mov esi, dword [esp + 0x28]
cmp byte [esp + 0x13], 0
mov edx, dword [esp + 0x78]
mov dword [esp + 0xa0], edx
jbe 0x4504d1
mov eax, dword [esp + 0x2c]
mov ecx, eax
and ecx, 0x1f
shl esi, cl
mov ecx, edi
neg ecx
and ecx, 0x1f
shr esi, cl
add eax, edi
mov dword [esp + 0x2c], eax
add esi, edx
mov dword [esp + 0xa0], esi
lea ecx, [esp + 0x28]
call fcn.004428b0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xa0]
add ecx, eax
mov eax, dword [esp + 0x64]
cmp ebx, ecx
ja 0x4504f3
mov eax, dword [esp + 0x60]
movzx esi, byte [esp + 0x77]
mov edx, dword [esp + 0xa4]
sub eax, ebx
add eax, ecx
add ecx, edx
mov dword [esp + 0x68], ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x2c]
lea edi, [esi + eax]
mov eax, dword [esp + 0x28]
mov ecx, edi
neg ecx
and ecx, 0x1f
mov edx, eax
shr edx, cl
movzx ecx, word [esp + 0x74]
and edx, dword [esi*4 + 0x6bbec0]
add ecx, edx
movzx edx, byte [esp + 0xc3]
lea esi, [edx + edi]
mov dword [esp + 0x3c], ecx
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], esi
and eax, dword [edx*4 + 0x6bbec0]
movzx edx, word [esp + 0xc0]
add edx, eax
mov dword [esp + 0x4c], edx
call fcn.004428b0
movzx edx, byte [esp + 0x9b]
mov eax, dword [esp + 0x2c]
inc dword [esp + 0x1c]
lea esi, [edx + eax]
mov eax, dword [esp + 0x28]
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
movzx ecx, word [esp + 0x98]
and eax, dword [edx*4 + 0x6bbec0]
mov edx, dword [esp + 0xa0]
add ecx, eax
mov eax, dword [esp + 0xa4]
mov dword [ebp], edx
mov dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xac]
mov dword [ebp + 4], eax
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ecx
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], esi
add ebp, 0x10
call fcn.004428b0
cmp eax, 2
jle 0x450288
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x90]
jl 0x4501b1
lea ecx, [esp + 0x28]
call fcn.004428b0
cmp eax, 2
jg 0x450ccc
mov eax, dword [esp + 0x128]
cmp dword [esp + 0x1c], eax
jge 0x450cdd
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov esi, dword [eax + ecx*8]
mov ebp, dword [eax + ecx*8 + 4]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x4c]
mov ebx, dword [eax + ecx*8]
mov ecx, dword [eax + ecx*8 + 4]
mov eax, dword [esp + 0x48]
mov dword [esp + 0x9c], ecx
mov ecx, dword [esp + 0x44]
mov edi, dword [eax + ecx*8]
mov edx, dword [eax + ecx*8 + 4]
mov eax, esi
shr eax, 0x10
mov byte [esp + 0x13], al
mov eax, edi
mov dword [esp + 0x98], ebx
shr eax, 0x10
shr ebx, 0x10
mov dword [esp + 0xd0], esi
mov dword [esp + 0xd4], ebp
mov dword [esp + 0xa0], edi
cmp al, 1
jbe 0x450754
cmp dword [esp + 0x12c], 0
je 0x45070b
cmp al, 0x19
jb 0x45070b
mov ebp, dword [esp + 0x2c]
mov ecx, 0x20
movzx eax, al
sub ecx, ebp
cmp eax, ecx
jae 0x4506a4
mov ecx, eax
mov esi, eax
sub esi, ecx
sub eax, esi
mov edi, eax
mov eax, dword [esp + 0x28]
mov ecx, ebp
and ecx, 0x1f
shl eax, cl
mov ecx, edi
neg ecx
and ecx, 0x1f
shr eax, cl
mov ecx, esi
add ebp, edi
mov dword [esp + 0x2c], ebp
shl eax, cl
lea ecx, [esp + 0x28]
add eax, edx
mov edi, eax
mov dword [esp + 0x84], edi
call fcn.004428b0
test esi, esi
je 0x45073f
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, edx
and ecx, 0x1f
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
add edx, esi
mov dword [esp + 0x2c], edx
add edi, eax
mov dword [esp + 0x84], edi
jmp 0x45073f
mov edi, dword [esp + 0x2c]
movzx esi, al
mov eax, dword [esp + 0x28]
mov ecx, edi
and ecx, 0x1f
shl eax, cl
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
add edi, esi
mov dword [esp + 0x2c], edi
lea ecx, [esp + 0x28]
lea edi, [eax + edx]
mov dword [esp + 0x84], edi
call fcn.004428b0
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
jmp 0x4507cc
xor ecx, ecx
test ebp, ebp
sete cl
mov edi, ecx
test al, al
jne 0x450780
test edi, edi
jne 0x450772
mov edi, dword [esp + 0x54]
mov dword [esp + 0x84], edi
jmp 0x4507d0
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x58], edx
jmp 0x4507c5
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, esi
and ecx, 0x1f
shl eax, cl
inc esi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x54]
shr eax, 0x1f
add eax, edi
add eax, edx
lea edi, [esi - 1]
cmp eax, 3
je 0x4507ab
mov edi, dword [esp + eax*4 + 0x54]
xor ecx, ecx
test edi, edi
sete cl
add edi, ecx
cmp eax, 1
je 0x4507c1
mov edx, dword [esp + 0x58]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], esi
mov dword [esp + 0x84], edi
mov dword [esp + 0x54], edi
mov esi, dword [esp + 0x9c]
mov dword [esp + 0xb4], esi
test bl, bl
jbe 0x45080c
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, ebp
and ecx, 0x1f
movzx edx, bl
shl eax, cl
mov ecx, edx
neg ecx
and ecx, 0x1f
shr eax, cl
add ebp, edx
mov dword [esp + 0x2c], ebp
add esi, eax
mov dword [esp + 0xb4], esi
movzx ebp, byte [esp + 0x13]
movzx eax, bl
add eax, ebp
cmp eax, 0x14
jl 0x450824
lea ecx, [esp + 0x28]
call fcn.004428b0
cmp byte [esp + 0x13], 0
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0xb0], ebx
jbe 0x450860
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov ecx, edx
and ecx, 0x1f
shl eax, cl
mov ecx, ebp
neg ecx
and ecx, 0x1f
shr eax, cl
add edx, ebp
mov dword [esp + 0x2c], edx
add ebx, eax
mov dword [esp + 0xb0], ebx
lea ecx, [esp + 0x28]
call fcn.004428b0
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
add ecx, ebx
cmp edi, ecx
ja 0x45087b
mov eax, dword [esp + 0x60]
mov edx, dword [esp + 0x2c]
add esi, ecx
mov dword [esp + 0x68], esi
movzx esi, byte [esp + 0xd3]
sub eax, edi
add eax, ecx
lea edi, [esi + edx]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x28]
mov ecx, edi
neg ecx
and ecx, 0x1f
mov edx, eax
shr edx, cl
movzx ecx, word [esp + 0xd0]
and edx, dword [esi*4 + 0x6bbec0]
add ecx, edx
movzx edx, byte [esp + 0x9b]
lea esi, [edx + edi]
mov dword [esp + 0x3c], ecx
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
lea ecx, [esp + 0x28]
mov dword [esp + 0x2c], esi
and eax, dword [edx*4 + 0x6bbec0]
movzx edx, word [esp + 0x98]
add edx, eax
mov dword [esp + 0x4c], edx
call fcn.004428b0
movzx edx, byte [esp + 0xa3]
mov eax, dword [esp + 0x2c]
lea esi, [edx + eax]
mov eax, dword [esp + 0x28]
mov ecx, esi
neg ecx
and ecx, 0x1f
shr eax, cl
movzx ecx, word [esp + 0xa0]
and eax, dword [edx*4 + 0x6bbec0]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x1c]
add ecx, eax
and esi, 3
shl esi, 4
mov eax, dword [esp + esi + 0xe4]
mov ebx, dword [esp + esi + 0xdc]
mov edx, dword [esp + esi + 0xe0]
lea esi, [esp + esi + 0xd8]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
mov ecx, dword [esi]
lea edi, [ecx + eax]
lea eax, [ebx + ecx]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x18]
lea ebp, [ecx + eax]
mov eax, edi
sub eax, edx
mov dword [esp + 0xc0], ebp
cmp ebp, dword [esp + 0x88]
ja 0x450c33
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x74]
add edx, ebp
mov ebp, dword [esp + 0x24]
add ebp, 0xffffffe0
cmp edx, ebp
ja 0x450c33
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x74]
sub edx, dword [esp + 0x14]
add ebp, 0x20
cmp edx, ebp
jb 0x450c33
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edx, dword [edx]
mov dword [ebp], edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 4]
mov dword [ebp + 4], edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 8]
mov dword [ebp + 8], edx
mov edx, dword [esp + 0x18]
mov edx, dword [edx + 0xc]
mov dword [ebp + 0xc], edx
cmp ecx, 0x10
jbe 0x450a67
mov edx, dword [esp + 0x18]
add ecx, 0xfffffff0
mov dword [esp + 0x20], ecx
lea ecx, [ebp + 0x10]
mov ebp, dword [esp + 0x20]
add ebp, ecx
add edx, 0x10
cmp dword [esp + 0x20], 0x10
mov dword [esp + 0x18], ebp
mov ebp, dword [edx]
mov dword [ecx], ebp
mov ebp, dword [edx + 4]
mov dword [ecx + 4], ebp
mov ebp, dword [edx + 8]
mov dword [ecx + 8], ebp
mov ebp, dword [edx + 0xc]
mov dword [ecx + 0xc], ebp
jle 0x450a67
add ecx, 0x10
add edx, 0x10
mov ebp, dword [edx]
mov dword [ecx], ebp
mov ebp, dword [edx + 4]
mov dword [ecx + 4], ebp
mov ebp, dword [edx + 8]
mov dword [ecx + 8], ebp
mov ebp, dword [edx + 0xc]
mov dword [ecx + 0xc], ebp
mov ebp, dword [edx + 0x10]
add edx, 0x10
add ecx, 0x10
mov dword [ecx], ebp
mov ebp, dword [edx + 4]
mov dword [ecx + 4], ebp
mov ebp, dword [edx + 8]
mov dword [ecx + 8], ebp
mov ebp, dword [edx + 0xc]
mov dword [ecx + 0xc], ebp
add ecx, 0x10
add edx, 0x10
cmp ecx, dword [esp + 0x18]
jb 0x450a28
mov ecx, dword [esp + 0xc0]
mov edx, edi
sub edx, dword [esp + 0x80]
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 8]
cmp ecx, edx
jbe 0x450adb
mov edx, edi
sub edx, dword [esp + 0x94]
cmp ecx, edx
ja 0x4501b1
mov ebp, dword [esp + 0x8c]
mov ecx, ebp
sub ecx, dword [esp + 0x80]
add eax, ecx
lea edx, [eax + ebx]
cmp edx, ebp
ja 0x450ac3
push ebx
push eax
push edi
call fcn.005e9040
mov eax, dword [esp + 0x80]
add esp, 0xc
jmp 0x450c82
sub ebp, eax
push ebp
push eax
push edi
call fcn.005e9040
mov eax, dword [esp + 0x8c]
add esp, 0xc
add edi, ebp
sub ebx, ebp
mov ebp, dword [esi + 8]
cmp ebp, 0x10
jb 0x450b4d
cmp ebx, 0x10
mov ecx, dword [eax]
mov dword [edi], ecx
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov ecx, dword [eax + 8]
mov dword [edi + 8], ecx
mov ecx, dword [eax + 0xc]
lea edx, [ebx + edi]
mov dword [edi + 0xc], ecx
jle 0x450b44
lea ecx, [edi + 0x10]
add eax, 0x10
mov edi, dword [eax]
mov dword [ecx], edi
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
mov edi, dword [eax + 8]
mov dword [ecx + 8], edi
mov edi, dword [eax + 0xc]
mov dword [ecx + 0xc], edi
mov edi, dword [eax + 0x10]
add eax, 0x10
add ecx, 0x10
mov dword [ecx], edi
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
mov edi, dword [eax + 8]
mov dword [ecx + 8], edi
mov edi, dword [eax + 0xc]
mov dword [ecx + 0xc], edi
add ecx, 0x10
add eax, 0x10
cmp ecx, edx
jb 0x450b07
mov eax, dword [esp + 0x74]
jmp 0x450c82
cmp ebp, 8
jae 0x450b80
movzx edx, byte [eax]
mov ecx, dword [ebp*4 + 0x6bc960]
mov byte [edi], dl
movzx edx, byte [eax + 1]
mov byte [edi + 1], dl
movzx edx, byte [eax + 2]
mov byte [edi + 2], dl
movzx edx, byte [eax + 3]
mov byte [edi + 3], dl
add eax, dword [ebp*4 + 0x6bc940]
mov edx, dword [eax]
sub eax, ecx
jmp 0x450b87
mov ecx, dword [eax]
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
cmp ebx, 8
jbe 0x450c2d
lea ecx, [eax + 8]
lea eax, [edi + 8]
mov edi, eax
add ebx, 0xfffffff8
sub edi, ecx
cmp edi, 0x10
lea edx, [eax + ebx]
jge 0x450bcc
sub ecx, eax
lea ebx, [ebx]
mov edi, dword [eax + ecx]
mov dword [eax], edi
mov edi, dword [eax + ecx + 4]
mov dword [eax + 4], edi
add eax, 8
cmp eax, edx
jb 0x450bb0
mov eax, dword [esp + 0x74]
jmp 0x450c82
cmp ebx, 0x10
mov edi, dword [ecx]
mov dword [eax], edi
mov edi, dword [ecx + 4]
mov dword [eax + 4], edi
mov edi, dword [ecx + 8]
mov dword [eax + 8], edi
mov edi, dword [ecx + 0xc]
mov dword [eax + 0xc], edi
jle 0x450c2d
add eax, 0x10
add ecx, 0x10
lea ecx, [ecx]
mov edi, dword [ecx]
mov dword [eax], edi
mov edi, dword [ecx + 4]
mov dword [eax + 4], edi
mov edi, dword [ecx + 8]
mov dword [eax + 8], edi
mov edi, dword [ecx + 0xc]
mov dword [eax + 0xc], edi
mov edi, dword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
mov dword [eax], edi
mov edi, dword [ecx + 4]
mov dword [eax + 4], edi
mov edi, dword [ecx + 8]
mov dword [eax + 8], edi
mov edi, dword [ecx + 0xc]
mov dword [eax + 0xc], edi
add eax, 0x10
add ecx, 0x10
cmp eax, edx
jb 0x450bf0
mov eax, dword [esp + 0x74]
jmp 0x450c82
mov eax, dword [esp + 0x8c]
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x8c]
push ecx
push edx
mov edx, dword [esi]
push eax
lea ecx, [esp + 0x28]
push ecx
sub esp, 0x10
mov eax, esp
mov dword [eax], edx
mov edx, dword [esi + 8]
mov ecx, ebx
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0xc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
call fcn.0044f7b0
add esp, 0x24
cmp eax, 0xffffff88
ja 0x4510d3
mov edx, dword [esp + 0xb0]
mov ecx, dword [esp + 0xb4]
add dword [esp + 0x14], eax
inc dword [esp + 0x1c]
mov dword [esi], edx
mov edx, dword [esp + 0x84]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0xbc]
mov dword [esi + 8], edx
mov dword [esi + 0xc], ecx
lea ecx, [esp + 0x28]
call fcn.004428b0
cmp eax, 2
jle 0x450600
mov edx, dword [esp + 0x128]
cmp dword [esp + 0x1c], edx
jl 0x4501b1
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x128]
mov dword [esp + 0x1c], eax
jge 0x451065
lea esp, [esp]
and eax, 3
shl eax, 4
mov edx, dword [esp + eax + 0xe4]
mov ecx, dword [esp + eax + 0xd8]
mov ebp, dword [esp + eax + 0xdc]
mov edi, dword [esp + eax + 0xe0]
lea eax, [esp + eax + 0xd8]
mov dword [esp + 0xbc], edx
mov edx, dword [esp + 0x14]
lea esi, [ecx + edx]
lea edx, [ecx + ebp]
mov dword [esp + 0x74], edx
mov edx, dword [esp + 0x18]
lea ebx, [ecx + edx]
mov edx, esi
sub edx, edi
mov dword [esp + 0xb8], edi
mov dword [esp + 0x20], ebx
cmp ebx, dword [esp + 0x88]
ja 0x450ff3
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x74]
add edi, ebx
mov ebx, dword [esp + 0x24]
add ebx, 0xffffffe0
cmp edi, ebx
ja 0x450ff3
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x74]
sub edi, dword [esp + 0x14]
add ebx, 0x20
cmp edi, ebx
jb 0x450ff3
mov eax, dword [esp + 0x18]
mov edi, dword [eax]
mov ebx, dword [esp + 0x14]
mov dword [ebx], edi
mov edi, dword [eax + 4]
mov dword [ebx + 4], edi
mov edi, dword [eax + 8]
mov dword [ebx + 8], edi
mov edi, dword [eax + 0xc]
mov dword [ebx + 0xc], edi
cmp ecx, 0x10
jbe 0x450e30
lea edi, [ecx - 0x10]
cmp edi, 0x10
lea ecx, [eax + 0x10]
lea eax, [ebx + 0x10]
lea ebx, [eax + edi]
mov dword [esp + 0xc0], ebx
mov ebx, dword [ecx]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
jle 0x450e30
mov edi, dword [esp + 0xc0]
add eax, 0x10
add ecx, 0x10
mov ebx, dword [ecx]
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
mov ebx, dword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
mov dword [eax], ebx
mov ebx, dword [ecx + 4]
mov dword [eax + 4], ebx
mov ebx, dword [ecx + 8]
mov dword [eax + 8], ebx
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0xc], ebx
add eax, 0x10
add ecx, 0x10
cmp eax, edi
jb 0x450df3
mov ecx, dword [esp + 0x20]
mov ebx, dword [esp + 0x80]
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x18], ecx
mov ecx, esi
sub ecx, ebx
mov eax, esi
cmp edi, ecx
jbe 0x450ea5
sub eax, dword [esp + 0x94]
cmp edi, eax
ja 0x4501b1
mov edi, dword [esp + 0x8c]
mov ecx, edi
sub ecx, ebx
add edx, ecx
lea eax, [edx + ebp]
cmp eax, edi
ja 0x450e8a
push ebp
push edx
push esi
call fcn.005e9040
mov eax, dword [esp + 0x80]
add esp, 0xc
jmp 0x451042
sub edi, edx
push edi
push edx
push esi
call fcn.005e9040
add esp, 0xc
lea eax, [edi + esi]
sub ebp, edi
mov edi, dword [esp + 0xb8]
mov edx, ebx
cmp edi, 0x10
jb 0x450f16
cmp ebp, 0x10
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
mov ecx, dword [edx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [edx + 0xc]
lea esi, [eax + ebp]
mov dword [eax + 0xc], ecx
jle 0x450f0d
add eax, 0x10
lea ecx, [edx + 0x10]
mov edi, edi
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
mov dword [eax], edx
mov edx, dword [ecx + 4]
mov dword [eax + 4], edx
mov edx, dword [ecx + 8]
mov dword [eax + 8], edx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
add eax, 0x10
add ecx, 0x10
cmp eax, esi
jb 0x450ed0
mov eax, dword [esp + 0x74]
jmp 0x451042
cmp edi, 8
jae 0x450f49
movzx ecx, byte [edx]
mov esi, dword [edi*4 + 0x6bc960]
mov byte [eax], cl
movzx ecx, byte [edx + 1]
mov byte [eax + 1], cl
movzx ecx, byte [edx + 2]
mov byte [eax + 2], cl
movzx ecx, byte [edx + 3]
mov byte [eax + 3], cl
add edx, dword [edi*4 + 0x6bc940]
mov ecx, dword [edx]
sub edx, esi
jmp 0x450f50
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
cmp ebp, 8
jbe 0x450fed
add eax, 8
lea ecx, [edx + 8]
mov esi, eax
add ebp, 0xfffffff8
sub esi, ecx
cmp esi, 0x10
lea edx, [eax + ebp]
jge 0x450f8f
sub ecx, eax
mov esi, dword [eax + ecx]
mov dword [eax], esi
mov esi, dword [eax + ecx + 4]
mov dword [eax + 4], esi
add eax, 8
cmp eax, edx
jb 0x450f73
mov eax, dword [esp + 0x74]
jmp 0x451042
cmp ebp, 0x10
mov esi, dword [ecx]
mov dword [eax], esi
mov esi, dword [ecx + 4]
mov dword [eax + 4], esi
mov esi, dword [ecx + 8]
mov dword [eax + 8], esi
mov esi, dword [ecx + 0xc]
mov dword [eax + 0xc], esi
jle 0x450fed
add eax, 0x10
add ecx, 0x10
mov esi, dword [ecx]
mov dword [eax], esi
mov esi, dword [ecx + 4]
mov dword [eax + 4], esi
mov esi, dword [ecx + 8]
mov dword [eax + 8], esi
mov esi, dword [ecx + 0xc]
mov dword [eax + 0xc], esi
mov esi, dword [ecx + 0x10]
add ecx, 0x10
add eax, 0x10
mov dword [eax], esi
mov esi, dword [ecx + 4]
mov dword [eax + 4], esi
mov esi, dword [ecx + 8]
mov dword [eax + 8], esi
mov esi, dword [ecx + 0xc]
mov dword [eax + 0xc], esi
add eax, 0x10
add ecx, 0x10
cmp eax, edx
jb 0x450fb0
mov eax, dword [esp + 0x74]
jmp 0x451042
mov edx, dword [esp + 0x8c]
mov ecx, dword [esp + 0x94]
push edx
mov edx, dword [esp + 0x84]
push ecx
mov ecx, dword [esp + 0x90]
push edx
push ecx
lea edx, [esp + 0x28]
push edx
mov edx, dword [eax]
sub esp, 0x10
mov ecx, esp
mov dword [ecx], edx
mov edx, ebp
mov dword [ecx + 4], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [ecx + 8], edx
mov dword [ecx + 0xc], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x38]
call fcn.0044f7b0
add esp, 0x24
cmp eax, 0xffffff88
ja 0x4510d3
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [esp + 0x128]
mov dword [esp + 0x1c], eax
jl 0x450d00
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x120]
mov dword [eax + 0x682c], ecx
mov ecx, dword [esp + 0x5c]
mov dword [eax + 0x6834], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0x6830], edx
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0x24]
sub eax, ecx
mov esi, eax
sub edx, ebx
cmp esi, edx
jbe 0x4510be
mov eax, 0xffffffba
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret
test ebx, ebx
je 0x4510cf
push esi
push ecx
push ebx
call fcn.005e3b10
add esp, 0xc
add ebx, esi
sub ebx, ebp
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret