Function at 0x45f894
Capabilities:
Compress data via zlib inflate or deflate

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x18], esi
call fcn.0045f641
test eax, eax
jne case.default.0x45f911
xor ecx, ecx
cmp dword [esi + 0xc], ecx
je case.default.0x45f911
cmp dword [esi], ecx
jne 0x45f8c7
cmp dword [esi + 4], ecx
jne case.default.0x45f911
mov ebx, dword [esi + 0x1c]
mov dword [ebp - 0x2c], ebx
cmp dword [ebx + 4], 0x3f3f
jne 0x45f8dd
mov dword [ebx + 4], 0x3f40
mov eax, dword [esi + 0xc]
mov edx, dword [ebx + 0x3c]
mov edi, dword [ebx + 0x40]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [esi]
mov dword [ebp - 8], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], ecx
jmp 0x45f9fa
jmp dword [eax*4 + 0x460c98]
cmp dword [ebx + 0xc], 0
jne 0x45f92a
mov dword [ebx + 4], 0x3f40
jmp 0x45f9fa
push 0x10
pop eax
cmp edi, eax
jae 0x45f95f
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
add edi, 8
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], edi
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
mov dword [ebp - 4], edx
cmp edi, 0x10
jb 0x45f931
xor ecx, ecx
test byte [ebx + 0xc], 2
je 0x45f9ab
cmp edx, 0x8b1f
jne 0x45f9ab
cmp dword [ebx + 0x28], ecx
jne 0x45f979
mov dword [ebx + 0x28], 0xf
push 0x1f
pop eax
mov dword [ebx + 0x1c], ecx
lea edx, [ebp - 0x1c]
push 2
xor ecx, ecx
mov byte [ebp - 0x1c], al
mov byte [ebp - 0x1b], 0x8b
call fcn.0045e1b5
pop ecx
xor ecx, ecx
mov dword [ebx + 0x1c], eax
mov edx, ecx
mov dword [ebx + 4], 0x3f35
mov edi, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
jmp 0x45f9fa
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0x14], ecx
test eax, eax
je 0x45f9b9
or dword [eax + 0x30], 0xffffffff
test byte [ebx + 0xc], 1
je 0x45fa79
movzx ecx, dl
mov eax, edx
shl ecx, 8
xor edx, edx
shr eax, 8
add eax, ecx
push 0x1f
pop ecx
div ecx
test edx, edx
mov edx, dword [ebp - 4]
jne 0x45fa77
mov eax, edx
and al, 0xf
cmp al, 8
je 0x45fa15
mov dword [esi + 0x18], 0x4a2768
mov dword [ebx + 4], 0x3f51
xor ecx, ecx
mov eax, dword [ebx + 4]
sub eax, 0x3f34
cmp eax, 0x1e
jbe switch.0x0045f911
push 0xfffffffffffffffe
pop eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
shr edx, 4
sub edi, 4
mov ecx, edx
mov dword [ebp - 4], edx
and ecx, 0xf
mov dword [ebp - 0x10], edi
add ecx, 8
cmp dword [ebx + 0x28], 0
jne 0x45fa32
mov dword [ebx + 0x28], ecx
cmp ecx, 0xf
ja 0x45fa6b
cmp ecx, dword [ebx + 0x28]
ja 0x45fa6b
xor edi, edi
shr edx, 8
inc edi
not edx
mov eax, edi
mov dword [ebx + 0x1c], edi
and edx, 2
shl eax, cl
or edx, 0x3f3d
mov dword [ebx + 0x18], eax
mov dword [esi + 0x30], edi
xor ecx, ecx
mov dword [ebx + 4], edx
mov edi, ecx
mov edx, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
jmp 0x45f9fa
mov dword [esi + 0x18], 0x4a2784
jmp 0x45f9f1
xor ecx, ecx
mov dword [esi + 0x18], 0x4a2720
mov dword [ebx + 4], 0x3f51
jmp 0x45f9fa
push 0x10
pop eax
cmp edi, eax
jae 0x45fac3
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
add edi, 8
mov eax, dword [ebp - 8]
push 0x10
mov dword [ebp - 0x10], edi
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
pop eax
mov dword [ebp - 4], edx
cmp edi, eax
jb 0x45fa93
xor ecx, ecx
mov dword [ebx + 0x14], edx
cmp dl, 8
je 0x45fad4
mov dword [esi + 0x18], 0x4a2768
jmp 0x45fa80
test edx, 0xe000
je 0x45fae5
mov dword [esi + 0x18], 0x4a2738
jmp 0x45fa80
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x45faf6
mov eax, edx
shr eax, 8
and eax, 1
mov dword [ecx], eax
test dword [ebx + 0x14], 0x200
je 0x45fb1f
test byte [ebx + 0xc], 4
je 0x45fb1f
mov ecx, dword [ebx + 0x1c]
mov byte [ebp - 0x1c], dl
shr edx, 8
mov byte [ebp - 0x1b], dl
lea edx, [ebp - 0x1c]
push 2
call fcn.0045e1b5
pop ecx
mov dword [ebx + 0x1c], eax
xor esi, esi
mov dword [ebx + 4], 0x3f36
mov edx, esi
mov edi, esi
jmp 0x45fb53
xor esi, esi
jmp 0x45fb56
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
add edi, 8
mov dword [ebp - 4], edx
cmp edi, 0x20
jb 0x45fb32
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x45fb65
mov dword [eax + 4], edx
test dword [ebx + 0x14], 0x200
je 0x45fb9e
test byte [ebx + 0xc], 4
je 0x45fb9e
mov ecx, dword [ebx + 0x1c]
mov eax, edx
shr eax, 8
mov byte [ebp - 0x1b], al
mov eax, edx
mov byte [ebp - 0x1c], dl
shr edx, 0x18
shr eax, 0x10
mov byte [ebp - 0x19], dl
lea edx, [ebp - 0x1c]
push 4
mov byte [ebp - 0x1a], al
call fcn.0045e1b5
pop ecx
mov dword [ebx + 0x1c], eax
mov edx, esi
mov dword [ebx + 4], 0x3f37
mov dword [ebp - 4], edx
mov edi, esi
push 0x10
pop eax
cmp edi, eax
jae 0x45fbdf
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
add edi, 8
movzx eax, byte [esi]
shl eax, cl
add edx, eax
inc esi
push 0x10
pop eax
mov dword [ebp - 4], edx
mov dword [ebp - 8], esi
cmp edi, eax
jb 0x45fbb6
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x45fbf7
movzx eax, dl
mov dword [ecx + 8], eax
mov ecx, edx
mov eax, dword [ebx + 0x24]
shr ecx, 8
mov dword [eax + 0xc], ecx
test dword [ebx + 0x14], 0x200
je 0x45fc20
test byte [ebx + 0xc], 4
je 0x45fc20
mov ecx, dword [ebx + 0x1c]
mov byte [ebp - 0x1c], dl
shr edx, 8
mov byte [ebp - 0x1b], dl
lea edx, [ebp - 0x1c]
push 2
call fcn.0045e1b5
pop ecx
mov dword [ebx + 0x1c], eax
xor ecx, ecx
mov dword [ebx + 4], 0x3f38
mov edx, ecx
mov edi, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
test dword [ebx + 0x14], 0x400
je 0x45fcb1
push 0x10
pop eax
cmp edi, eax
jae 0x45fc6f
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
add edi, 8
movzx eax, byte [esi]
shl eax, cl
add edx, eax
inc esi
push 0x10
pop eax
mov dword [ebp - 4], edx
mov dword [ebp - 8], esi
cmp edi, eax
jb 0x45fc46
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0x44], edx
test eax, eax
je 0x45fc7c
mov dword [eax + 0x14], edx
test dword [ebx + 0x14], 0x200
je 0x45fca5
test byte [ebx + 0xc], 4
je 0x45fca5
mov ecx, dword [ebx + 0x1c]
mov byte [ebp - 0x1c], dl
shr edx, 8
mov byte [ebp - 0x1b], dl
lea edx, [ebp - 0x1c]
push 2
call fcn.0045e1b5
pop ecx
mov dword [ebx + 0x1c], eax
xor ecx, ecx
mov edi, ecx
mov dword [ebp - 4], ecx
mov dword [ebp - 0x10], edi
jmp 0x45fcbb
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x45fcbb
mov dword [eax + 0x10], ecx
mov dword [ebx + 4], 0x3f39
test dword [ebx + 0x14], 0x400
je 0x45fd59
mov esi, dword [ebx + 0x44]
mov eax, dword [ebp - 0xc]
cmp esi, eax
jbe 0x45fcdb
mov esi, eax
test esi, esi
je 0x45fd50
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x45fd1b
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x30], eax
test eax, eax
je 0x45fd18
mov edx, dword [ecx + 0x14]
sub edx, dword [ebx + 0x44]
mov ecx, dword [ecx + 0x18]
lea eax, [esi + edx]
cmp eax, ecx
jbe 0x45fd04
sub ecx, edx
jmp 0x45fd06
mov ecx, esi
mov eax, dword [ebp - 0x30]
push ecx
push dword [ebp - 8]
add eax, edx
push eax
call fcn.0047b850
add esp, 0xc
mov eax, dword [ebp - 0xc]
test dword [ebx + 0x14], 0x200
je 0x45fd43
test byte [ebx + 0xc], 4
je 0x45fd43
mov eax, dword [ebp - 8]
test eax, eax
je 0x45fd3d
mov ecx, dword [ebx + 0x1c]
mov edx, eax
push esi
call fcn.0045e1b5
pop ecx
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0xc]
add dword [ebp - 8], esi
sub eax, esi
sub dword [ebx + 0x44], esi
xor ecx, ecx
mov dword [ebp - 0xc], eax
cmp dword [ebx + 0x44], ecx
jne 0x460b8c
mov dword [ebx + 0x44], ecx
mov dword [ebx + 4], 0x3f3a
test dword [ebx + 0x14], 0x800
je 0x45fdf4
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
mov esi, ecx
mov edi, eax
mov eax, dword [ebp - 8]
movzx eax, byte [esi + eax]
inc esi
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x45fda9
mov edx, dword [eax + 0x1c]
test edx, edx
je 0x45fda9
mov ecx, dword [ebx + 0x44]
cmp ecx, dword [eax + 0x20]
jae 0x45fda9
mov eax, dword [ebp - 0x30]
mov byte [edx + ecx], al
inc dword [ebx + 0x44]
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x45fdb4
cmp esi, edi
jb 0x45fd7f
test dword [ebx + 0x14], 0x200
mov edi, dword [ebp - 0x10]
je 0x45fddf
test byte [ebx + 0xc], 4
je 0x45fddf
mov eax, dword [ebp - 8]
test eax, eax
je 0x45fddc
mov ecx, dword [ebx + 0x1c]
mov edx, eax
push esi
call fcn.0045e1b5
pop ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0xc]
add dword [ebp - 8], esi
sub eax, esi
mov dword [ebp - 0xc], eax
test ecx, ecx
jne 0x460b8c
jmp 0x45fdfe
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x45fdfe
mov dword [eax + 0x1c], ecx
mov dword [ebx + 0x44], ecx
mov dword [ebx + 4], 0x3f3b
test dword [ebx + 0x14], 0x1000
je 0x45fe99
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
mov esi, ecx
mov edi, eax
mov eax, dword [ebp - 8]
movzx eax, byte [esi + eax]
inc esi
mov dword [ebp - 0x30], eax
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x45fe4e
mov edx, dword [eax + 0x24]
test edx, edx
je 0x45fe4e
mov ecx, dword [ebx + 0x44]
cmp ecx, dword [eax + 0x28]
jae 0x45fe4e
mov eax, dword [ebp - 0x30]
mov byte [edx + ecx], al
inc dword [ebx + 0x44]
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x45fe59
cmp esi, edi
jb 0x45fe24
test dword [ebx + 0x14], 0x200
mov edi, dword [ebp - 0x10]
je 0x45fe84
test byte [ebx + 0xc], 4
je 0x45fe84
mov eax, dword [ebp - 8]
test eax, eax
je 0x45fe81
mov ecx, dword [ebx + 0x1c]
mov edx, eax
push esi
call fcn.0045e1b5
pop ecx
mov ecx, dword [ebp - 0x30]
mov dword [ebx + 0x1c], eax
mov eax, dword [ebp - 0xc]
add dword [ebp - 8], esi
sub eax, esi
mov dword [ebp - 0xc], eax
test ecx, ecx
jne 0x460b8c
jmp 0x45fea3
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x45fea3
mov dword [eax + 0x24], ecx
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0x18]
mov dword [ebx + 4], 0x3f3c
test dword [ebx + 0x14], 0x200
je 0x45ff0f
jmp 0x45fee2
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
add edi, 8
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
push 0x10
pop eax
cmp edi, eax
jb 0x45febb
test byte [ebx + 0xc], 4
je 0x45ff03
movzx eax, word [ebx + 0x1c]
cmp edx, eax
je 0x45ff03
mov dword [esi + 0x18], 0x4a2754
jmp 0x45f9f1
xor eax, eax
mov edx, eax
mov edi, eax
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
mov ecx, dword [ebx + 0x24]
test ecx, ecx
je 0x45ff2c
mov eax, dword [ebx + 0x14]
sar eax, 9
and eax, 1
mov dword [ecx + 0x2c], eax
mov eax, dword [ebx + 0x24]
mov dword [eax + 0x30], 1
xor ecx, ecx
mov dword [ebx + 0x1c], ecx
mov dword [esi + 0x30], ecx
mov dword [ebx + 4], 0x3f3f
jmp 0x45f9fa
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
mov dword [ebp - 4], edx
add edi, 8
cmp edi, 0x20
jb 0x45ff40
mov ecx, edx
mov edi, 0xff00
mov eax, edx
and ecx, edi
shl eax, 0x10
add ecx, eax
mov eax, edx
shr eax, 8
and eax, edi
shl ecx, 8
shr edx, 0x18
add eax, ecx
add eax, edx
xor ecx, ecx
mov dword [ebx + 0x1c], eax
mov edx, ecx
mov dword [esi + 0x30], eax
mov edi, ecx
mov dword [ebp - 4], edx
mov dword [ebx + 4], 0x3f3e
cmp dword [ebx + 0x10], ecx
je 0x460b49
xor eax, eax
inc eax
mov dword [ebx + 0x1c], eax
mov dword [esi + 0x30], eax
mov dword [ebx + 4], 0x3f3f
cmp dword [ebx + 8], ecx
je 0x45ffd9
mov ecx, edi
mov dword [ebx + 4], 0x3f4e
and ecx, 7
shr edx, cl
sub edi, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
jmp 0x45f9f8
cmp edi, 3
jae 0x460009
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
add edi, 8
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
mov dword [ebp - 4], edx
cmp edi, 3
jb 0x45ffde
xor ecx, ecx
mov eax, edx
shr edx, 1
and eax, 1
mov dword [ebx + 8], eax
mov eax, edx
and eax, 3
sub eax, ecx
je 0x460069
sub eax, 1
je 0x460044
sub eax, 1
je 0x46003b
sub eax, 1
jne 0x460070
mov dword [esi + 0x18], 0x4a27d8
mov dword [ebx + 4], 0x3f51
jmp 0x460070
mov dword [ebx + 4], 0x3f44
jmp 0x460070
mov dword [ebx + 0x50], 0x4936e0
mov dword [ebx + 0x58], 9
mov dword [ebx + 0x54], 0x493ee0
mov dword [ebx + 0x5c], 5
mov dword [ebx + 4], 0x3f47
jmp 0x460070
mov dword [ebx + 4], 0x3f41
shr edx, 2
sub edi, 3
jmp 0x45fa63
mov ecx, edi
and ecx, 7
shr edx, cl
sub edi, ecx
jmp 0x4600a7
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
add edi, 8
mov dword [ebp - 0x10], edi
mov dword [ebp - 4], edx
cmp edi, 0x20
jb 0x460086
mov eax, edx
movzx ecx, dx
not eax
shr eax, 0x10
cmp ecx, eax
je 0x4600cc
mov dword [esi + 0x18], 0x4a27ec
jmp 0x45f9f1
mov dword [ebx + 0x44], ecx
xor ecx, ecx
mov edx, ecx
mov dword [ebx + 4], 0x3f42
mov edi, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
mov dword [ebx + 4], 0x3f43
mov esi, dword [ebx + 0x44]
test esi, esi
je 0x460132
mov eax, dword [ebp - 0xc]
cmp esi, eax
jbe 0x4600f9
mov esi, eax
cmp esi, dword [ebp - 0x14]
jbe 0x460101
mov esi, dword [ebp - 0x14]
test esi, esi
je 0x460b8c
push esi
push dword [ebp - 8]
push dword [ebp - 0x20]
call fcn.0047b850
sub dword [ebp - 0xc], esi
add esp, 0xc
add dword [ebp - 8], esi
sub dword [ebp - 0x14], esi
add dword [ebp - 0x20], esi
sub dword [ebx + 0x44], esi
mov edx, dword [ebp - 4]
mov esi, dword [ebp - 0x18]
jmp 0x45f9f8
mov dword [ebx + 4], 0x3f3f
mov esi, dword [ebp - 0x18]
jmp 0x45f9fa
cmp edi, 0xe
jae 0x460171
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
add edi, 8
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
mov dword [ebp - 4], edx
cmp edi, 0xe
jb 0x460146
xor ecx, ecx
mov eax, edx
sub edi, 0xe
and eax, 0x1f
shr edx, 5
add eax, 0x101
mov dword [ebp - 0x10], edi
mov dword [ebx + 0x64], eax
mov eax, edx
and eax, 0x1f
shr edx, 5
inc eax
mov dword [ebx + 0x68], eax
mov eax, edx
and eax, 0xf
shr edx, 4
add eax, 4
mov dword [ebp - 4], edx
cmp dword [ebx + 0x64], 0x11e
mov dword [ebx + 0x60], eax
ja 0x4601bf
cmp dword [ebx + 0x68], 0x1e
ja 0x4601bf
mov dword [ebx + 0x6c], ecx
mov dword [ebx + 4], 0x3f45
jmp case.0x45f911.16197
mov dword [esi + 0x18], 0x4a2798
jmp 0x45fa80
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
mov dword [ebp - 4], edx
add edi, 8
cmp edi, 3
jb 0x4601cb
mov eax, dword [ebx + 0x6c]
mov ecx, edx
and ecx, 7
shr edx, 3
mov dword [ebp - 4], edx
movzx eax, word [eax*2 + 0x493f60]
mov word [ebx + eax*2 + 0x74], cx
inc dword [ebx + 0x6c]
sub edi, 3
mov dword [ebp - 0x10], edi
mov eax, dword [ebx + 0x6c]
cmp eax, dword [ebx + 0x60]
jb 0x4601ef
jmp 0x460237
mov eax, dword [ebx + 0x6c]
xor ecx, ecx
movzx eax, word [eax*2 + 0x493f60]
mov word [ebx + eax*2 + 0x74], cx
inc dword [ebx + 0x6c]
cmp dword [ebx + 0x6c], 0x13
jb 0x460222
lea eax, [ebx + 0x534]
lea ecx, [ebx + 0x70]
mov dword [ebx + 0x50], eax
mov dword [ecx], eax
lea edx, [ebx + 0x58]
lea eax, [ebx + 0x2f4]
mov dword [edx], 7
push eax
push edx
push ecx
push 0x13
lea edx, [ebx + 0x74]
xor ecx, ecx
call fcn.00465b5a
add esp, 0x10
mov dword [ebp - 0x28], eax
test eax, eax
je 0x460289
mov dword [esi + 0x18], 0x4a27bc
mov edx, dword [ebp - 4]
mov dword [ebx + 4], 0x3f51
jmp 0x45f9f8
and dword [ebx + 0x6c], 0
mov dword [ebx + 4], 0x3f46
mov eax, dword [ebx + 0x68]
add eax, dword [ebx + 0x64]
cmp dword [ebx + 0x6c], eax
jae 0x460485
lea esi, [ebx + 0x58]
jmp 0x4602cb
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
mov edx, dword [ebp - 8]
dec eax
mov dword [ebp - 0xc], eax
mov ecx, edi
movzx eax, byte [edx]
shl eax, cl
add dword [ebp - 4], eax
inc edx
mov dword [ebp - 8], edx
add edi, 8
mov ecx, dword [esi]
xor edx, edx
mov eax, dword [ebx + 0x50]
inc edx
shl edx, cl
dec edx
and edx, dword [ebp - 4]
mov eax, dword [eax + edx*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
mov dword [ebp - 0x30], eax
cmp ecx, edi
ja 0x4602a8
mov edx, eax
push 0x10
shr edx, 0x10
pop ecx
cmp dx, cx
jae 0x460319
shr eax, 8
movzx ecx, al
mov eax, dword [ebx + 0x6c]
sub edi, ecx
shr dword [ebp - 4], cl
mov dword [ebp - 0x10], edi
mov word [ebx + eax*2 + 0x74], dx
inc dword [ebx + 0x6c]
mov ecx, dword [ebx + 0x6c]
jmp 0x460452
jne 0x460384
mov ecx, eax
shr ecx, 8
movzx esi, cl
add esi, 2
jmp 0x46034a
mov ecx, dword [ebp - 0xc]
test ecx, ecx
je 0x460b89
dec ecx
mov dword [ebp - 0xc], ecx
mov ecx, dword [ebp - 8]
movzx edx, byte [ecx]
mov ecx, edi
shl edx, cl
add dword [ebp - 4], edx
inc dword [ebp - 8]
add edi, 8
cmp edi, esi
jb 0x460328
mov edx, dword [ebp - 4]
movzx ecx, ah
mov eax, dword [ebx + 0x6c]
sub edi, ecx
shr edx, cl
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
test eax, eax
je 0x460465
movzx eax, word [ebx + eax*2 + 0x72]
mov esi, edx
and esi, 3
shr edx, 2
add esi, 3
mov dword [ebp - 0x30], eax
sub edi, 2
jmp 0x460424
cmp word [ebp - 0x2e], 0x11
mov edx, dword [ebp - 4]
movzx ecx, ah
jne 0x4603d7
lea esi, [ecx + 3]
mov dword [ebp - 0x30], ecx
cmp edi, esi
jae 0x4603c6
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
add edi, 8
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
mov dword [ebp - 4], edx
cmp edi, esi
jb 0x46039b
mov ecx, dword [ebp - 0x30]
shr edx, cl
mov esi, edx
and esi, 7
add esi, 3
shr edx, 3
push 0xfffffffffffffffd
jmp 0x46041b
lea esi, [ecx + 7]
mov dword [ebp - 0x30], ecx
cmp edi, esi
jae 0x46040c
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
add edi, 8
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
mov dword [ebp - 4], edx
cmp edi, esi
jb 0x4603e1
mov ecx, dword [ebp - 0x30]
shr edx, cl
mov esi, edx
and esi, 0x7f
add esi, 0xb
shr edx, 7
push 0xfffffffffffffff9
and dword [ebp - 0x30], 0
pop eax
sub eax, ecx
add edi, eax
mov ecx, dword [ebx + 0x6c]
mov eax, dword [ebx + 0x68]
add ecx, esi
add eax, dword [ebx + 0x64]
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
cmp ecx, eax
ja 0x460474
mov edx, dword [ebp - 0x30]
mov eax, dword [ebx + 0x6c]
mov word [ebx + eax*2 + 0x74], dx
inc dword [ebx + 0x6c]
mov ecx, dword [ebx + 0x6c]
sub esi, 1
jne 0x46043c
lea esi, [ebx + 0x58]
mov eax, dword [ebx + 0x68]
add eax, dword [ebx + 0x64]
cmp ecx, eax
jb 0x4602cb
mov esi, dword [ebp - 0x18]
jmp 0x460485
mov esi, dword [ebp - 0x18]
mov dword [esi + 0x18], 0x4a2840
jmp 0x45f9f1
mov esi, dword [ebp - 0x18]
mov dword [esi + 0x18], 0x4a2840
mov dword [ebx + 4], 0x3f51
xor ecx, ecx
cmp dword [ebx + 4], 0x3f51
je 0x4604a7
cmp word [ebx + 0x274], cx
jne 0x4604af
mov dword [esi + 0x18], 0x4a285c
mov dword [ebx + 4], 0x3f51
mov edx, dword [ebp - 4]
jmp 0x45f9fa
lea eax, [ebx + 0x534]
lea esi, [ebx + 0x70]
mov dword [ebx + 0x50], eax
mov dword [esi], eax
lea ecx, [ebx + 0x58]
lea eax, [ebx + 0x2f4]
mov dword [ecx], 9
push eax
push ecx
push esi
push dword [ebx + 0x64]
xor ecx, ecx
lea edx, [ebx + 0x74]
inc ecx
call fcn.00465b5a
add esp, 0x10
mov dword [ebp - 0x28], eax
test eax, eax
je 0x4604f6
mov esi, dword [ebp - 0x18]
mov dword [esi + 0x18], 0x4a280c
jmp 0x46027a
mov eax, dword [esi]
lea ecx, [ebx + 0x5c]
mov dword [ebx + 0x54], eax
lea eax, [ebx + 0x2f4]
push eax
mov eax, dword [ebx + 0x64]
push ecx
push esi
push dword [ebx + 0x68]
add eax, 0x3a
mov dword [ecx], 6
push 2
pop ecx
lea edx, [ebx + eax*2]
call fcn.00465b5a
mov esi, dword [ebp - 0x18]
add esp, 0x10
mov edx, dword [ebp - 4]
xor ecx, ecx
mov dword [ebp - 0x28], eax
test eax, eax
je 0x46053f
mov dword [esi + 0x18], 0x4a2828
jmp 0x45fa80
mov dword [ebx + 4], 0x3f47
mov dword [ebx + 4], 0x3f48
mov eax, dword [ebp - 0xc]
cmp eax, 6
jb 0x4605be
cmp dword [ebp - 0x14], 0x102
jb 0x4605be
mov ecx, dword [ebp - 0x20]
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp - 8]
mov dword [esi], ecx
mov ecx, esi
mov dword [esi + 4], eax
mov dword [ebx + 0x3c], edx
mov edx, dword [ebp - 0x24]
mov dword [ebx + 0x40], edi
call fcn.00465f54
cmp dword [ebx + 4], 0x3f3f
mov eax, dword [esi + 0xc]
mov edx, dword [ebx + 0x3c]
mov edi, dword [ebx + 0x40]
mov dword [ebp - 0x20], eax
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x14], eax
mov eax, dword [esi]
mov dword [ebp - 8], eax
mov eax, dword [esi + 4]
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
jne 0x45f9f8
or dword [ebx + 0x1bc8], 0xffffffff
jmp 0x45f9f8
mov esi, dword [ebx + 0x50]
xor eax, eax
mov dword [ebx + 0x1bc8], ecx
inc eax
mov ecx, dword [ebx + 0x58]
shl eax, cl
dec eax
mov dword [ebp - 0x38], esi
and eax, edx
mov eax, dword [esi + eax*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, edi
jbe 0x46062d
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
add edi, 8
movzx eax, byte [esi]
shl eax, cl
mov ecx, dword [ebx + 0x58]
add edx, eax
mov eax, dword [ebx + 0x50]
inc esi
mov dword [ebp - 4], edx
xor edx, edx
inc edx
mov dword [ebp - 8], esi
shl edx, cl
dec edx
mov dword [ebp - 0x10], edi
and edx, dword [ebp - 4]
mov eax, dword [eax + edx*4]
mov ecx, eax
mov edx, dword [ebp - 4]
shr ecx, 8
movzx ecx, cl
cmp ecx, edi
ja 0x4605e7
test al, al
je 0x4606e6
test al, 0xf0
jne 0x4606e6
xor edi, edi
movzx ecx, al
mov ebx, eax
inc edi
shr ebx, 8
mov edx, eax
movzx esi, bl
add ecx, esi
shr eax, 0x10
shl edi, cl
mov ecx, esi
dec edi
mov dword [ebp - 0x30], edx
and edi, dword [ebp - 4]
shr edi, cl
mov ecx, dword [ebp - 0x38]
add edi, eax
mov eax, dword [ecx + edi*4]
mov ecx, eax
mov edi, dword [ebp - 0x10]
shr ecx, 8
movzx esi, cl
movzx ecx, bl
mov ebx, dword [ebp - 0x2c]
add esi, ecx
cmp esi, edi
jbe 0x4606d6
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
mov esi, dword [ebp - 8]
dec eax
mov dword [ebp - 0xc], eax
mov ecx, edi
add edi, 8
mov dword [ebp - 0x10], edi
movzx eax, byte [esi]
shl eax, cl
add dword [ebp - 4], eax
inc esi
movzx eax, word [ebp - 0x2e]
mov dword [ebp - 8], esi
xor esi, esi
movzx edi, dh
inc esi
movzx ecx, dl
add ecx, edi
shl esi, cl
mov ecx, edi
dec esi
and esi, dword [ebp - 4]
shr esi, cl
add esi, eax
mov eax, dword [ebx + 0x50]
mov eax, dword [eax + esi*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add ecx, edi
mov edi, dword [ebp - 0x10]
cmp ecx, edi
ja 0x46067e
movzx ecx, dh
mov edx, dword [ebp - 4]
shr edx, cl
sub edi, ecx
mov dword [ebx + 0x1bc8], ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [ebx + 0x1bc8], ecx
sub edi, ecx
shr edx, cl
mov ecx, eax
shr ecx, 0x10
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
mov dword [ebx + 0x44], ecx
test al, al
jne 0x460716
mov dword [ebx + 4], 0x3f4d
jmp 0x46012a
test al, 0x20
je 0x46072d
or dword [ebx + 0x1bc8], 0xffffffff
mov dword [ebx + 4], 0x3f3f
jmp 0x46012a
test al, 0x40
je 0x460740
mov esi, dword [ebp - 0x18]
mov dword [esi + 0x18], 0x4a28bc
jmp 0x45f9f1
movzx eax, al
and eax, 0xf
mov dword [ebx + 4], 0x3f49
mov dword [ebx + 0x4c], eax
mov esi, dword [ebx + 0x4c]
test esi, esi
je 0x46079e
jmp 0x46077d
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
mov dword [ebp - 4], edx
add edi, 8
cmp edi, esi
jb 0x460759
xor eax, eax
mov ecx, esi
inc eax
sub edi, esi
shl eax, cl
dec eax
mov dword [ebp - 0x10], edi
and eax, edx
shr edx, cl
add dword [ebx + 0x44], eax
add dword [ebx + 0x1bc8], esi
mov dword [ebp - 4], edx
mov eax, dword [ebx + 0x44]
mov dword [ebx + 0x1bcc], eax
mov dword [ebx + 4], 0x3f4a
mov ecx, dword [ebx + 0x5c]
xor eax, eax
mov esi, dword [ebx + 0x54]
inc eax
shl eax, cl
dec eax
mov dword [ebp - 0x38], esi
and eax, edx
mov eax, dword [esi + eax*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
cmp ecx, edi
jbe 0x460817
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
add edi, 8
movzx eax, byte [esi]
shl eax, cl
mov ecx, dword [ebx + 0x5c]
add edx, eax
mov eax, dword [ebx + 0x54]
inc esi
mov dword [ebp - 4], edx
xor edx, edx
inc edx
mov dword [ebp - 8], esi
shl edx, cl
dec edx
mov dword [ebp - 0x10], edi
and edx, dword [ebp - 4]
mov eax, dword [eax + edx*4]
mov ecx, eax
mov edx, dword [ebp - 4]
shr ecx, 8
movzx ecx, cl
cmp ecx, edi
ja 0x4607d1
test al, 0xf0
jne 0x4608c8
xor edi, edi
movzx ecx, al
mov ebx, eax
inc edi
shr ebx, 8
mov edx, eax
movzx esi, bl
add ecx, esi
shr eax, 0x10
shl edi, cl
mov ecx, esi
dec edi
mov dword [ebp - 0x30], edx
and edi, dword [ebp - 4]
shr edi, cl
mov ecx, dword [ebp - 0x38]
add edi, eax
mov eax, dword [ecx + edi*4]
mov ecx, eax
mov edi, dword [ebp - 0x10]
shr ecx, 8
movzx esi, cl
movzx ecx, bl
mov ebx, dword [ebp - 0x2c]
add esi, ecx
cmp esi, edi
jbe 0x4608b8
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
mov esi, dword [ebp - 8]
dec eax
mov dword [ebp - 0xc], eax
mov ecx, edi
add edi, 8
mov dword [ebp - 0x10], edi
movzx eax, byte [esi]
shl eax, cl
add dword [ebp - 4], eax
inc esi
movzx eax, word [ebp - 0x2e]
mov dword [ebp - 8], esi
xor esi, esi
movzx edi, dh
inc esi
movzx ecx, dl
add ecx, edi
shl esi, cl
mov ecx, edi
dec esi
and esi, dword [ebp - 4]
shr esi, cl
add esi, eax
mov eax, dword [ebx + 0x54]
mov eax, dword [eax + esi*4]
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add ecx, edi
mov edi, dword [ebp - 0x10]
cmp ecx, edi
ja 0x460860
movzx ecx, dh
mov edx, dword [ebp - 4]
sub edi, ecx
shr edx, cl
add dword [ebx + 0x1bc8], ecx
mov ecx, eax
shr ecx, 8
movzx ecx, cl
add dword [ebx + 0x1bc8], ecx
sub edi, ecx
shr edx, cl
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
test al, 0x40
je 0x4608f3
mov esi, dword [ebp - 0x18]
mov dword [esi + 0x18], 0x4a28d8
jmp 0x45f9f1
mov ecx, eax
mov dword [ebx + 4], 0x3f4b
shr ecx, 0x10
movzx eax, al
and eax, 0xf
mov dword [ebx + 0x48], ecx
mov dword [ebx + 0x4c], eax
mov esi, dword [ebx + 0x4c]
test esi, esi
je 0x460959
jmp 0x460938
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
mov dword [ebp - 4], edx
add edi, 8
cmp edi, esi
jb 0x460914
xor eax, eax
mov ecx, esi
inc eax
sub edi, esi
shl eax, cl
dec eax
mov dword [ebp - 0x10], edi
and eax, edx
shr edx, cl
add dword [ebx + 0x48], eax
add dword [ebx + 0x1bc8], esi
mov dword [ebp - 4], edx
mov esi, dword [ebp - 0x18]
mov dword [ebx + 4], 0x3f4c
cmp dword [ebp - 0x14], 0
je 0x460b89
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x14]
mov ecx, dword [ebx + 0x48]
cmp ecx, eax
jbe 0x4609b6
sub ecx, eax
cmp ecx, dword [ebx + 0x30]
jbe 0x460996
cmp dword [ebx + 0x1bc4], 0
je 0x460996
mov dword [esi + 0x18], 0x4a2884
jmp 0x45f9f1
mov esi, dword [ebx + 0x38]
cmp ecx, dword [ebx + 0x34]
jbe 0x4609a8
sub ecx, dword [ebx + 0x34]
add esi, dword [ebx + 0x2c]
sub esi, ecx
jmp 0x4609ad
sub esi, ecx
add esi, dword [ebx + 0x34]
mov eax, dword [ebx + 0x44]
cmp ecx, eax
jbe 0x4609c0
jmp 0x4609be
mov esi, dword [ebp - 0x20]
mov eax, dword [ebx + 0x44]
sub esi, ecx
mov ecx, eax
cmp ecx, dword [ebp - 0x14]
jbe 0x4609c8
mov ecx, dword [ebp - 0x14]
sub dword [ebp - 0x14], ecx
sub eax, ecx
mov edx, dword [ebp - 0x20]
sub esi, edx
mov dword [ebx + 0x44], eax
mov al, byte [esi + edx]
mov byte [edx], al
inc edx
sub ecx, 1
jne 0x4609d5
mov esi, dword [ebp - 0x18]
mov dword [ebp - 0x20], edx
mov edx, dword [ebp - 4]
cmp dword [ebx + 0x44], ecx
jne 0x45f9fa
mov dword [ebx + 4], 0x3f48
jmp 0x45f9fa
cmp dword [ebp - 0x14], 0
je 0x460b89
mov esi, dword [ebp - 0x20]
mov al, byte [ebx + 0x44]
inc dword [ebp - 0x20]
dec dword [ebp - 0x14]
mov byte [esi], al
mov dword [ebx + 4], 0x3f48
jmp 0x460139
cmp dword [ebx + 0xc], ecx
je 0x460af8
cmp edi, 0x20
jae 0x460a5e
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
add edi, 8
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], edi
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
mov dword [ebp - 4], edx
cmp edi, 0x20
jb 0x460a30
xor ecx, ecx
mov eax, dword [ebp - 0x24]
sub eax, dword [ebp - 0x14]
add dword [esi + 0x14], eax
add dword [ebx + 0x20], eax
test byte [ebx + 0xc], 4
je 0x460aa4
test eax, eax
je 0x460aa4
mov edx, dword [ebp - 0x20]
cmp dword [ebx + 0x14], ecx
je 0x460a8f
sub edx, eax
jne 0x460a84
mov eax, ecx
jmp 0x460a9b
mov ecx, dword [ebx + 0x1c]
push eax
call fcn.0045e1b5
jmp 0x460a9a
mov ecx, dword [ebx + 0x1c]
sub edx, eax
push eax
call fcn.0046591f
pop ecx
mov edx, dword [ebp - 4]
mov dword [ebx + 0x1c], eax
mov dword [esi + 0x30], eax
test byte [ebx + 0xc], 4
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x24], eax
je 0x460aec
cmp dword [ebx + 0x14], 0
mov ecx, edx
jne 0x460adb
and ecx, 0xff00
mov eax, edx
shl eax, 0x10
add ecx, eax
mov eax, edx
shr eax, 8
and eax, 0xff00
shl ecx, 8
add ecx, eax
mov eax, edx
shr eax, 0x18
add ecx, eax
cmp ecx, dword [ebx + 0x1c]
je 0x460aec
mov dword [esi + 0x18], 0x4a28a4
jmp 0x45f9f1
xor ecx, ecx
mov edx, ecx
mov edi, ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], edi
mov dword [ebx + 4], 0x3f4f
cmp dword [ebx + 0xc], ecx
je 0x460b72
cmp dword [ebx + 0x14], ecx
je 0x460b72
cmp edi, 0x20
jae 0x460b38
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x460b8c
dec eax
mov ecx, edi
mov dword [ebp - 0xc], eax
add edi, 8
mov eax, dword [ebp - 8]
mov dword [ebp - 0x10], edi
movzx eax, byte [eax]
shl eax, cl
add edx, eax
inc dword [ebp - 8]
mov dword [ebp - 4], edx
cmp edi, 0x20
jb 0x460b0e
xor ecx, ecx
cmp edx, dword [ebx + 0x20]
je 0x460b6d
mov dword [esi + 0x18], 0x4a28f0
jmp 0x45fa80
mov eax, dword [ebp - 0x20]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x14]
mov dword [esi + 0x10], eax
mov eax, dword [ebp - 8]
mov dword [esi], eax
mov eax, dword [ebp - 0xc]
mov dword [esi + 4], eax
mov dword [ebx + 0x3c], edx
mov dword [ebx + 0x40], edi
push 2
jmp 0x45fa0d
mov dword [ebp - 4], ecx
mov edi, ecx
mov dword [ebx + 4], 0x3f50
mov dword [ebp - 0x28], 1
jmp 0x460b89
mov dword [ebp - 0x28], 0xfffffffd
mov eax, dword [ebp - 0xc]
mov esi, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x20]
mov dword [esi + 0xc], ecx
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0x10], ecx
mov ecx, dword [ebp - 8]
mov dword [esi + 4], eax
mov eax, dword [ebp - 4]
mov dword [esi], ecx
mov dword [ebx + 0x40], edi
xor edi, edi
mov dword [ebx + 0x3c], eax
mov eax, dword [ebp - 0x24]
cmp dword [ebx + 0x2c], edi
jne 0x460bc4
cmp eax, dword [esi + 0x10]
je 0x460be8
cmp dword [ebx + 4], 0x3f51
jge 0x460be8
sub eax, dword [esi + 0x10]
mov ecx, esi
mov edx, dword [esi + 0xc]
push eax
call fcn.0045f7c6
pop ecx
test eax, eax
je 0x460be5
mov dword [ebx + 4], 0x3f52
push 0xfffffffffffffffc
jmp 0x45fa0d
mov eax, dword [ebp - 0x24]
mov edx, dword [ebp - 0x34]
sub edx, dword [esi + 4]
sub eax, dword [esi + 0x10]
add dword [esi + 8], edx
add dword [esi + 0x14], eax
add dword [ebx + 0x20], eax
test byte [ebx + 0xc], 4
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x24], eax
je 0x460c3a
test eax, eax
je 0x460c3a
mov edx, dword [esi + 0xc]
cmp dword [ebx + 0x14], edi
je 0x460c25
sub edx, eax
jne 0x460c1a
mov eax, edi
jmp 0x460c31
mov ecx, dword [ebx + 0x1c]
push eax
call fcn.0045e1b5
jmp 0x460c30
mov ecx, dword [ebx + 0x1c]
sub edx, eax
push eax
call fcn.0046591f
pop ecx
mov edx, dword [ebp - 0x34]
mov dword [ebx + 0x1c], eax
mov dword [esi + 0x30], eax
cmp dword [ebx + 4], 0x3f3f
mov ecx, 0x80
je 0x460c4a
mov ecx, edi
cmp dword [ebx + 4], 0x3f47
je 0x460c5c
cmp dword [ebx + 4], 0x3f42
jne 0x460c61
mov edi, 0x100
mov eax, dword [ebx + 8]
neg eax
sbb eax, eax
and eax, 0x40
add eax, edi
add eax, ecx
add eax, dword [ebx + 0x40]
mov dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x28]
test edx, edx
jne 0x45fa0e
cmp dword [ebp - 0x24], edx
jne 0x45fa0e
test eax, eax
jne 0x45fa0e
push 0xfffffffffffffffb
jmp 0x45fa0d