Function at 0x45e3e0
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 0x45f3c0
cmp edi, 4
mov dword [esp + 0x90], edi
jl 0x45e479
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.0045fef0
cmp eax, 0xffffff88
jbe 0x45e4e1
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 + 0x6b3e10]
mov dword [esp + 0x3c], eax
call fcn.0045cef0
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 + 0x6b3e10]
mov dword [esp + 0x44], eax
call fcn.0045cef0
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 + 0x6b3e10]
mov dword [esp + 0x4c], eax
call fcn.0045cef0
add esi, 8
mov dword [esp + 0x50], esi
mov dword [esp + 0x1c], 0
call fcn.0045cef0
cmp eax, 2
jg 0x45e8fd
lea ebp, [esp + 0xd8]
mov ecx, dword [esp + 0x1c]
cmp ecx, dword [esp + 0x90]
jge 0x45e90e
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 0x45e6e1
cmp dword [esp + 0x12c], 0
je 0x45e697
cmp al, 0x19
jb 0x45e697
mov ebx, dword [esp + 0x2c]
mov ecx, 0x20
movzx eax, al
sub ecx, ebx
cmp eax, ecx
jae 0x45e63e
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.0045cef0
test esi, esi
je 0x45e6c3
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 0x45e6c3
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.0045cef0
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 0x45e75d
mov esi, dword [esp + 0x28]
xor ecx, ecx
test ebx, ebx
sete cl
mov dword [esp + 0x20], ecx
test al, al
jne 0x45e710
test ecx, ecx
jne 0x45e6fe
mov ebx, dword [esp + 0x54]
jmp 0x45e75d
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x58], eax
mov dword [esp + 0x54], ebx
jmp 0x45e75d
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 0x45e73d
mov edi, dword [esp + eax*4 + 0x54]
xor ebx, ebx
test edi, edi
sete bl
add edi, ebx
cmp eax, 1
je 0x45e753
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 0x45e7a0
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 0x45e7bc
lea ecx, [esp + 0x28]
call fcn.0045cef0
mov esi, dword [esp + 0x28]
cmp byte [esp + 0x13], 0
mov edx, dword [esp + 0x78]
mov dword [esp + 0xa0], edx
jbe 0x45e7f1
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.0045cef0
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xa0]
add ecx, eax
mov eax, dword [esp + 0x64]
cmp ebx, ecx
ja 0x45e813
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 + 0x6b3e10]
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 + 0x6b3e10]
movzx edx, word [esp + 0xc0]
add edx, eax
mov dword [esp + 0x4c], edx
call fcn.0045cef0
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 + 0x6b3e10]
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.0045cef0
cmp eax, 2
jle 0x45e5a8
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x90]
jl 0x45e4d1
lea ecx, [esp + 0x28]
call fcn.0045cef0
cmp eax, 2
jg 0x45efec
mov eax, dword [esp + 0x128]
cmp dword [esp + 0x1c], eax
jge 0x45effd
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 0x45ea74
cmp dword [esp + 0x12c], 0
je 0x45ea2b
cmp al, 0x19
jb 0x45ea2b
mov ebp, dword [esp + 0x2c]
mov ecx, 0x20
movzx eax, al
sub ecx, ebp
cmp eax, ecx
jae 0x45e9c4
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.0045cef0
test esi, esi
je 0x45ea5f
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 0x45ea5f
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.0045cef0
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
jmp 0x45eaec
xor ecx, ecx
test ebp, ebp
sete cl
mov edi, ecx
test al, al
jne 0x45eaa0
test edi, edi
jne 0x45ea92
mov edi, dword [esp + 0x54]
mov dword [esp + 0x84], edi
jmp 0x45eaf0
mov edx, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x58], edx
jmp 0x45eae5
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 0x45eacb
mov edi, dword [esp + eax*4 + 0x54]
xor ecx, ecx
test edi, edi
sete cl
add edi, ecx
cmp eax, 1
je 0x45eae1
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 0x45eb2c
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 0x45eb44
lea ecx, [esp + 0x28]
call fcn.0045cef0
cmp byte [esp + 0x13], 0
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0xb0], ebx
jbe 0x45eb80
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.0045cef0
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x64]
add ecx, ebx
cmp edi, ecx
ja 0x45eb9b
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 + 0x6b3e10]
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 + 0x6b3e10]
movzx edx, word [esp + 0x98]
add edx, eax
mov dword [esp + 0x4c], edx
call fcn.0045cef0
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 + 0x6b3e10]
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 0x45ef53
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 0x45ef53
mov edx, dword [esp + 0x24]
mov ebp, dword [esp + 0x74]
sub edx, dword [esp + 0x14]
add ebp, 0x20
cmp edx, ebp
jb 0x45ef53
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 0x45ed87
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 0x45ed87
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 0x45ed48
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 0x45edfb
mov edx, edi
sub edx, dword [esp + 0x94]
cmp ecx, edx
ja 0x45e4d1
mov ebp, dword [esp + 0x8c]
mov ecx, ebp
sub ecx, dword [esp + 0x80]
add eax, ecx
lea edx, [eax + ebx]
cmp edx, ebp
ja 0x45ede3
push ebx
push eax
push edi
call fcn.005e6c50
mov eax, dword [esp + 0x80]
add esp, 0xc
jmp 0x45efa2
sub ebp, eax
push ebp
push eax
push edi
call fcn.005e6c50
mov eax, dword [esp + 0x8c]
add esp, 0xc
add edi, ebp
sub ebx, ebp
mov ebp, dword [esi + 8]
cmp ebp, 0x10
jb 0x45ee6d
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 0x45ee64
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 0x45ee27
mov eax, dword [esp + 0x74]
jmp 0x45efa2
cmp ebp, 8
jae 0x45eea0
movzx edx, byte [eax]
mov ecx, dword [ebp*4 + 0x6b48b0]
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 + 0x6b4890]
mov edx, dword [eax]
sub eax, ecx
jmp 0x45eea7
mov ecx, dword [eax]
mov dword [edi], ecx
mov edx, dword [eax + 4]
mov dword [edi + 4], edx
cmp ebx, 8
jbe 0x45ef4d
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 0x45eeec
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 0x45eed0
mov eax, dword [esp + 0x74]
jmp 0x45efa2
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 0x45ef4d
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 0x45ef10
mov eax, dword [esp + 0x74]
jmp 0x45efa2
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.0045dad0
add esp, 0x24
cmp eax, 0xffffff88
ja 0x45f3f3
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.0045cef0
cmp eax, 2
jle 0x45e920
mov edx, dword [esp + 0x128]
cmp dword [esp + 0x1c], edx
jl 0x45e4d1
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x90]
cmp eax, dword [esp + 0x128]
mov dword [esp + 0x1c], eax
jge 0x45f385
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 0x45f313
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 0x45f313
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x74]
sub edi, dword [esp + 0x14]
add ebx, 0x20
cmp edi, ebx
jb 0x45f313
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 0x45f150
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 0x45f150
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 0x45f113
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 0x45f1c5
sub eax, dword [esp + 0x94]
cmp edi, eax
ja 0x45e4d1
mov edi, dword [esp + 0x8c]
mov ecx, edi
sub ecx, ebx
add edx, ecx
lea eax, [edx + ebp]
cmp eax, edi
ja 0x45f1aa
push ebp
push edx
push esi
call fcn.005e6c50
mov eax, dword [esp + 0x80]
add esp, 0xc
jmp 0x45f362
sub edi, edx
push edi
push edx
push esi
call fcn.005e6c50
add esp, 0xc
lea eax, [edi + esi]
sub ebp, edi
mov edi, dword [esp + 0xb8]
mov edx, ebx
cmp edi, 0x10
jb 0x45f236
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 0x45f22d
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 0x45f1f0
mov eax, dword [esp + 0x74]
jmp 0x45f362
cmp edi, 8
jae 0x45f269
movzx ecx, byte [edx]
mov esi, dword [edi*4 + 0x6b48b0]
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 + 0x6b4890]
mov ecx, dword [edx]
sub edx, esi
jmp 0x45f270
mov ecx, dword [edx]
mov dword [eax], ecx
mov ecx, dword [edx + 4]
mov dword [eax + 4], ecx
cmp ebp, 8
jbe 0x45f30d
add eax, 8
lea ecx, [edx + 8]
mov esi, eax
add ebp, 0xfffffff8
sub esi, ecx
cmp esi, 0x10
lea edx, [eax + ebp]
jge 0x45f2af
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 0x45f293
mov eax, dword [esp + 0x74]
jmp 0x45f362
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 0x45f30d
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 0x45f2d0
mov eax, dword [esp + 0x74]
jmp 0x45f362
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.0045dad0
add esp, 0x24
cmp eax, 0xffffff88
ja 0x45f3f3
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
inc eax
cmp eax, dword [esp + 0x128]
mov dword [esp + 0x1c], eax
jl 0x45f020
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 0x45f3de
mov eax, 0xffffffba
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret
test ebx, ebx
je 0x45f3ef
push esi
push ecx
push ebx
call fcn.005e5310
add esp, 0xc
add ebx, esi
sub ebx, ebp
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x108
ret