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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x520
mov dword [esp + 0x58], ecx
mov ecx, dword [edx + 0x278]
call 0x59c8d2
pop eax
mov edi, edx
mov dword [esp + 0x394], eax
or ecx, dword [edx + 0x27c]
je 0x59c91a
mov ecx, dword [edi + 0x280]
mov edx, dword [edi + 0x284]
lea esi, [edi + 0x278]
call fcn.005fc952
push esi
push eax
call dword [edx + 0x38]
add esp, 8
mov ebx, edx
mov ecx, dword [edi + 0x280]
mov edx, dword [edi + 0x284]
mov esi, eax
call fcn.0042680c
jmp 0x59c91e
xor esi, esi
xor ebx, ebx
mov ecx, dword [edi + 0x288]
mov dword [esp + 0x3f8], esi
mov dword [esp + 0x3fc], ebx
or esi, ebx
mov ebx, edi
mov dword [esp + 0x400], eax
mov dword [esp + 0x404], edx
mov dword [esp + 0x408], ecx
je 0x59c95d
lea esi, [esp + 0x3f8]
mov ecx, eax
push esi
call fcn.00606ebe
pop eax
mov eax, dword [0xa70a24]
mov dword [esp + 0x28], ebx
test eax, eax
je 0x59f96d
and dword [esp + 0x414], 0
and dword [esp + 0x410], 0
and dword [esp + 0x420], 0
mov edi, dword [ebp + 8]
lea eax, [ebx + 0x210]
mov dword [esp + 0x1e8], eax
lea eax, [ebx + 0x250]
mov dword [esp + 0x1a4], eax
lea eax, [ebx + 0xc8]
mov dword [esp + 0x34], eax
lea eax, [ebx + 0x260]
mov dword [esp + 0x1e4], eax
mov eax, dword [0xa70a24]
test eax, eax
je 0x59caae
mov eax, dword [esp + 0x1a4]
movzx eax, byte [eax]
test eax, eax
je 0x59ca2c
cmp eax, 1
jne 0x59f9eb
mov eax, dword [ebx + 0x254]
mov esi, ebx
mov bl, byte [ebx + 0x251]
mov dword [esp + 8], eax
mov eax, dword [0xa70a24]
test eax, eax
je 0x59cc54
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0xb0]
push edi
call fcn.005a3482
pop eax
cmp byte [esp + 0xb0], 5
jne 0x59cb1d
mov byte [esp + 0x2d8], 5
mov al, 5
jmp 0x59ccd8
lea ecx, [esp + 0x3c0]
mov edx, ebx
push edi
call fcn.0059fe68
pop eax
movzx eax, byte [esp + 0x3c0]
cmp eax, 4
je 0x59d08a
mov cl, byte [esp + 0x3c1]
mov esi, dword [esp + 0x3d0]
mov edx, ebx
mov ebx, dword [esp + 0x3c4]
cmp al, 3
mov byte [esp + 0xc], cl
mov ecx, dword [esp + 0x3c8]
mov dword [esp + 0x398], esi
mov esi, dword [esp + 0x3cc]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x3d4]
mov dword [esp + 0x39c], ecx
jne 0x59cb53
mov word [edx + 0x250], 0x101
and dword [edx + 0x254], 0
mov ebx, edx
jmp 0x59c9ba
mov ecx, 0xa70078
call fcn.0040e00b
test al, al
je 0x59c9c7
mov ecx, dword [0xa70078]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59c9c7
mov ecx, dword [0xa70078]
mov edx, dword [ecx + 0x20]
lea eax, [ecx + 0x1c]
mov dword [esp + 8], eax
test edx, edx
je 0x59ce85
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov esi, dword [esp + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
jmp 0x59ce89
mov eax, dword [esp + 0xb0]
cmp al, 4
jne 0x59ccc3
mov eax, dword [esi + 0x194]
push edi
push dword [esi + 0x190]
lea ecx, [esp + 0x2e0]
push ecx
call dword [eax + 0x18]
add esp, 0xc
mov al, byte [esp + 0x2d8]
jmp 0x59ccd8
mov edi, dword [edx + 0x258]
mov ecx, edx
mov ecx, dword [edx + 0x25c]
add ecx, 8
add edi, 8
test eax, eax
mov dword [esp + 0x20], ecx
je 0x59cd0e
cmp eax, 1
jne 0x59fb4e
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x39c]
mov dword [esp + 0x210], eax
mov eax, dword [esp + 0x398]
mov dword [esp + 0x214], esi
mov dword [esp + 0x21c], ecx
mov dword [esp + 0x218], eax
mov al, byte [esp + 0xc]
mov dword [esp + 0x20c], ebx
mov byte [esp + 0x209], al
mov byte [esp + 0x208], 1
mov eax, dword [0xa70a24]
cmp eax, 1
ja 0x59d254
mov ecx, 0xa70030
call fcn.0040e00b
test al, al
je 0x59d254
mov ecx, dword [0xa70030]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59d254
mov esi, dword [0xa70030]
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x24]
mov ecx, dword [esi + 0x28]
mov dword [esp + 8], eax
mov eax, dword [esi + 0x20]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x1b4], ecx
test eax, eax
mov dword [esp + 0x30], eax
je 0x59d11e
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 8]
jmp 0x59d128
mov ecx, 0xa70084
call fcn.0040e00b
test al, al
je 0x59c9fd
mov ecx, dword [0xa70084]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59c9fd
mov ecx, dword [0xa70084]
mov edx, dword [ecx + 0x20]
lea eax, [ecx + 0x1c]
mov dword [esp + 0xc], eax
test edx, edx
je 0x59cfdc
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov esi, dword [esp + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
jmp 0x59cfde
mov ecx, dword [esp + 0xb4]
mov dword [esp + 0x2d8], eax
mov dword [esp + 0x2dc], ecx
cmp al, 5
je 0x59fc29
mov edx, dword [esp + 0x2d8]
cmp dl, 4
jne 0x59fa8f
mov eax, dword [esp + 8]
mov byte [esi + 0x250], 2
mov byte [esi + 0x251], bl
mov ebx, esi
mov dword [esi + 0x254], eax
jmp 0x59c9ba
mov eax, dword [esp + 8]
mov dword [esp + 0x1f4], ebx
mov dword [esp + 0x3c0], eax
mov eax, dword [0xa70a24]
test eax, eax
je 0x59cdf4
lea ecx, [esp + 0xb0]
mov edx, edi
mov esi, ecx
call fcn.004c8758
mov ecx, esi
mov edx, 0x9ffbfc
call fcn.0058b85e
mov edi, eax
add eax, 8
mov byte [esp + 0x14], dl
lea ecx, [esp + 0x208]
lea esi, [edi + 0x128]
mov dword [esp + 0xc], eax
mov edx, esi
push ebx
call fcn.004da4ea
pop eax
cmp dword [esp + 0x208], 0
je 0x59ce6b
movsd xmm0, qword [esp + 0x208]
movsd xmm1, qword [esp + 0x210]
mov edx, ebx
mov dword [esp + 0x30], esi
mov esi, ebx
movsd qword [esp + 0x2e0], xmm1
movsd qword [esp + 0x2d8], xmm0
mov ecx, dword [edi + 0x190]
call fcn.004c9d9b
test al, al
je 0x59cf14
cmp dword [edi + 0xb8], 0
lea ecx, [esp + 0xb0]
mov eax, esi
jne 0x59cf39
cmp dword [edi + 0xbc], eax
ja 0x59cf39
lea ebx, [eax + 2]
mov edx, ebx
shr edx, 0x1f
mov dword [edi + 0xb8], edx
mov dword [edi + 0xbc], ebx
jmp 0x59cf39
mov ecx, 0xa70048
call fcn.0040e00b
test al, al
je 0x59cd2d
mov ecx, dword [0xa70048]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59cd2d
mov esi, dword [0xa70048]
mov ecx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
mov edx, dword [esi + 0x24]
mov ebx, dword [esi + 0x28]
mov dword [esp + 8], esi
test ecx, ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x30], ebx
je 0x59d370
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], ebx
and dword [esp + 0xc0], 0
xor esi, esi
inc esi
jmp 0x59d374
mov ecx, dword [esp + 0x20c]
mov edx, dword [esp + 0x210]
mov ebx, edi
call fcn.004da6df
jmp 0x59cf5c
mov esi, ebx
xor eax, eax
lea edi, [esp + 0x2d8]
lea ebx, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov ecx, edi
mov edx, ebx
push 0x9ff154
call fcn.0057917a
pop eax
mov ecx, dword [esp + 8]
mov eax, dword [esp + 0x1a4]
mov dword [esp + 0x208], ebx
mov dword [esp + 0x20c], 1
lea edx, [esp + 0x464]
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], edx
lea edx, [esp + 0x208]
mov dword [esp + 0xb8], 0x9ff164
mov dword [esp + 0x210], ecx
mov ecx, dword [0xa70078]
mov dword [esp + 0x464], eax
call fcn.00606f01
mov edi, dword [ebp + 8]
mov ebx, esi
jmp 0x59c9c7
mov eax, dword [esp + 0xc]
lea ecx, [esp + 0xb0]
cmp dword [eax], 0
mov eax, esi
jne 0x59cf39
cmp dword [edi + 0xc], eax
ja 0x59cf39
lea ebx, [eax + 2]
mov edx, ebx
shr edx, 0x1f
mov dword [edi + 8], edx
mov dword [edi + 0xc], ebx
mov ebx, edi
mov esi, ecx
mov edx, eax
push 0
push 0
call fcn.004da760
pop eax
pop ecx
lea ecx, [esp + 0x2d8]
mov edx, esi
call fcn.004da71c
mov esi, dword [esp + 0x30]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 0xb0], esi
lea esi, [esp + 0x208]
mov ecx, esi
call fcn.00438e75
mov ecx, esi
mov edx, 0x9ffe94
call fcn.0058b89a
mov ecx, dword [esp + 0xc]
mov edi, ebx
mov esi, eax
add eax, 8
mov byte [esp + 0x20], dl
lea edx, [esp + 0xb0]
add edi, 0x170
push eax
push edi
push 1
push dword [esp + 0x14]
call fcn.0058d891
add esp, 0x10
movzx edx, byte [esp + 0x20]
mov ecx, esi
call fcn.00608264
movzx edx, byte [esp + 0x14]
mov ecx, ebx
call fcn.00608264
mov ebx, dword [esp + 0x28]
jmp 0x59d2fd
xor eax, eax
lea edi, [esp + 0xb0]
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x2d8]
mov edx, edi
push 0x9ff174
call fcn.0057917a
pop eax
xor ecx, ecx
lea edx, [esp + 0x208]
mov dword [esp + 0xb0], 0x9ff1a4
lea eax, [esp + 0x2d8]
inc ecx
mov dword [esp + 0x464], edx
lea edx, [esp + 0x464]
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], edi
mov dword [esp + 0x210], 0x9fd8ec
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x468], ecx
mov ecx, dword [esp + 0xc]
and dword [esp + 0xc0], 0
mov dword [esp + 0xb8], str.dest_is_out_of_bounds
and dword [esp + 0xbc], 0
mov dword [esp + 0x46c], ecx
mov ecx, dword [0xa70084]
call fcn.00606f01
mov edi, dword [ebp + 8]
jmp 0x59c9fd
mov edx, dword [ebx + 0x258]
mov edi, ebx
lea ebx, [esp + 0xb0]
mov ecx, ebx
add edx, 8
call fcn.004c8758
mov ecx, ebx
mov edx, 0x9ffcd0
call fcn.0058b85e
mov byte [esp + 0x96], dl
mov edx, dword [edi + 0x25c]
mov ecx, ebx
mov esi, eax
mov dword [esp + 0x1c], eax
add edx, 8
call fcn.00438e75
mov ecx, ebx
mov edx, 0xa0004c
call fcn.0058b89a
mov byte [esp + 7], dl
mov ecx, dword [esi + 0x28]
mov edx, dword [esi + 0x2c]
mov edi, eax
call fcn.004ca395
cmp eax, 1
mov dword [esp + 8], edx
mov dword [esp + 0x54], edi
jne 0x59d5ab
mov edx, dword [esp + 0x34]
mov ecx, ebx
push dword [ebp + 8]
call fcn.005a2f2d
pop eax
cmp byte [esp + 0xb0], 5
jne 0x59d537
mov bl, 5
jmp 0x59f7fe
mov dword [esp + 0x14], 0
xor eax, eax
add esi, 0x1c
lea ecx, [esp + 0x70]
lea edx, [esp + 0xb0]
mov dword [esp + 0xb0], eax
push 0x9ff060
call fcn.0057917a
pop eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x30]
mov dword [esp + 0xb0], 0x9ff094
mov dword [esp + 0xb4], 1
and dword [esp + 0xc0], 0
mov dword [esp + 0xb8], str.dest_is_out_of_bounds
and dword [esp + 0xbc], 0
mov ecx, 0
cmp edx, eax
jae 0x59d1b5
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1b4]
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2e4], ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x2e8], edx
mov dword [esp + 0x2d8], ecx
lea ecx, [esp + 0x464]
lea edx, [esp + 0x2d8]
push 0x9ff060
call fcn.0057917a
pop eax
lea ecx, [esp + 0x70]
lea edx, [esp + 0xb0]
lea eax, [esp + 0x208]
mov dword [esp + 0x2d8], ecx
lea ecx, [esp + 0x464]
mov dword [esp + 0x2dc], edx
mov dword [esp + 0x2e0], 0x9fd8ec
lea edx, [esp + 0x1b8]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x2e4], ecx
lea ecx, [esp + 0x2d8]
mov dword [esp + 0x2e8], edx
lea edx, [esp + 0x38]
mov dword [esp + 0x2ec], 0x9ff09c
mov dword [esp + 0x38], ecx
mov ecx, dword [0xa70030]
mov dword [esp + 0x3c], 2
mov dword [esp + 0x40], esi
call fcn.00606f01
mov esi, dword [esp + 0x28]
cmp dword [esi + 0x210], 0
je 0x59d2a1
cmp dword [esi + 0x218], ebx
jne 0x59d2a1
mov eax, dword [0xa70a24]
test eax, eax
je 0x59d305
mov eax, dword [esp + 0x28]
mov cl, byte [esp + 0xc]
mov byte [eax + 0x250], 1
mov byte [eax + 0x251], cl
lea ecx, [esp + 0x208]
mov dword [eax + 0x254], ebx
mov ebx, eax
call fcn.0058bdb8
jmp 0x59d2fd
movsd xmm0, qword [esp + 0x218]
movsd xmm2, qword [esp + 0x208]
movsd xmm1, qword [esp + 0x210]
mov edx, dword [esp + 0x20]
lea eax, [esp + 0xb0]
mov ecx, edi
movsd qword [esp + 0xc0], xmm0
movsd qword [esp + 0xb8], xmm1
movsd qword [esp + 0xb0], xmm2
push eax
call fcn.005a42a8
pop eax
mov ecx, dword [esp + 0x1e8]
mov edx, edi
push ebx
call fcn.005a2e79
pop eax
mov ebx, esi
mov edi, dword [ebp + 8]
jmp 0x59c9ba
mov ecx, 0xa7003c
call fcn.0040e00b
test al, al
je 0x59d276
mov ecx, dword [0xa7003c]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59d276
mov ecx, dword [0xa7003c]
mov edx, dword [ecx + 0x20]
lea eax, [ecx + 0x1c]
mov dword [esp + 8], eax
test edx, edx
je 0x59d8ac
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
jmp 0x59d8ae
xor esi, esi
xor eax, eax
mov ebx, ecx
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x70]
lea edx, [esp + 0xb0]
push 0x9ff0e0
call fcn.0057917a
pop eax
mov dword [esp + str.stream_error], 0x9ff0fc
mov dword [esp + 0x2dc], 1
and dword [esp + 0x2e8], 0
mov dword [esp + 0x2e0], str.dest_is_out_of_bounds
and dword [esp + 0x2e4], 0
cmp esi, ebx
jae 0x59d3f7
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb4], ebx
mov ecx, dword [esp + 0xc]
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xc0], esi
inc esi
jmp 0x59d3fd
mov eax, dword [esp + 8]
xor ecx, ecx
add eax, 0x1c
mov dword [esp + 0xb0], ecx
lea ecx, [esp + 0x464]
lea edx, [esp + 0xb0]
mov dword [esp + 8], eax
push 0x9ff0e0
call fcn.0057917a
pop eax
lea eax, [esp + 0x1f4]
mov dword [esp + 0x2c0], eax
xor eax, eax
cmp esi, ebx
jae 0x59d460
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0xc0], esi
lea ebx, [esp + 0xb0]
lea esi, [esp + 0x208]
mov dword [esp + 0xb0], eax
mov ecx, esi
mov edx, ebx
push 0x9ff0e0
call fcn.0057917a
pop eax
lea edx, [esp + 0x70]
lea ecx, [esp + 0x2d8]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], 3
lea eax, [esp + 0x3c0]
mov dword [esp + 0xb0], edx
mov dword [esp + 0xb4], ecx
lea edx, [esp + 0x464]
lea ecx, [esp + 0x2c0]
mov dword [esp + 0xb8], 0x9fd8ec
mov dword [esp + 0x1b8], eax
mov dword [esp + 0xbc], edx
mov dword [esp + 0xc0], ecx
mov ecx, dword [esp + 8]
lea edx, [esp + 0x1b8]
mov dword [esp + 0xc4], 0x9ff104
mov dword [esp + 0xc8], esi
mov dword [esp + 0xcc], edx
lea edx, [esp + 0x38]
mov dword [esp + 0xd0], 0x9ff114
mov dword [esp + 0x40], ecx
mov ecx, dword [0xa70048]
call fcn.00606f01
mov eax, dword [esp + 0x3c0]
mov ebx, dword [esp + 0x1f4]
mov dword [esp + 8], eax
jmp 0x59cd2d
mov eax, dword [esp + 0xb0]
cmp al, 4
jne 0x59d856
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x34]
and dword [esp + 0xb4], 0
lea ebx, [esp + 0xb0]
lea eax, [esi + 0x28]
mov edx, ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0xb8], edi
mov byte [esp + 0xb0], 7
call fcn.00586238
movzx ecx, al
mov edx, str.invalid_WINDOW_UPDATE_frame
push 0x9ff680
push 0x1b
call fcn.00587a74
pop eax
pop ecx
mov ecx, dword [esp + 0xc]
mov edx, edi
call fcn.004d712b
mov ecx, eax
mov edx, 0x9ff690
call fcn.005a427e
mov edi, dword [esp + 0x54]
lea eax, [edi + 8]
mov edi, dword [ebp + 8]
lea ecx, [esi + 0x128]
lea edx, [esi + 0x170]
mov dword [esp + 0x1b0], esi
mov dword [esp + 8], ecx
lea ecx, [esi + 0x30]
lea esi, [esp + 0x70]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x34]
mov ecx, ebx
push edi
call fcn.005a2f2d
pop eax
cmp byte [esp + 0xb0], 5
je 0x59d117
mov eax, dword [esp + 0xb0]
cmp al, 4
jne 0x59d856
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0xb0]
push dword [esp + 8]
call fcn.004da623
pop eax
cmp dword [esp + 0xb0], 0
je 0x59d877
mov eax, dword [esp + 0xb8]
movsd xmm0, qword [esp + 0xb0]
mov ecx, esi
mov dword [esp + 0x78], eax
movsd qword [esp + 0x70], xmm0
call fcn.004c92a1
mov ebx, dword [eax + 0x18]
mov eax, dword [0xa70a24]
test eax, eax
je 0x59d72c
mov ecx, esi
call fcn.004c92a1
lea ecx, [eax + 0x20]
call fcn.004ca3b7
test al, al
je 0x59d6eb
mov ecx, esi
call fcn.004c92a1
mov ecx, dword [eax + 0x48]
mov edx, dword [eax + 0x4c]
call fcn.004ca395
cmp eax, 1
jne 0x59d6eb
mov ecx, esi
mov edi, edx
call fcn.004c92a1
mov eax, dword [eax + 0xcc]
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0xb0]
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], edi
mov byte [esp + 0xb0], 7
call fcn.00586238
movzx ecx, al
mov edx, str.invalid_WINDOW_UPDATE_frame
push 0x9ff640
push 0x1b
call fcn.00587a74
pop eax
pop ecx
mov ecx, esi
call fcn.004c9289
lea ecx, [eax + 0x48]
mov edx, edi
call fcn.004d712b
mov ecx, eax
mov edx, 0x9ff670
call fcn.005a427e
mov ecx, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x70]
xor eax, eax
cmp ebx, 0x3b9aca00
lea ebx, [esp + 0xb0]
setne al
mov edx, ebx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xc]
movsd qword [esp + 0xb0], xmm0
push eax
call fcn.004c9830
pop eax
mov edi, dword [ebp + 8]
jmp 0x59d5db
mov ecx, 0xa7018c
call fcn.0040e00b
test al, al
je 0x59d659
mov ecx, dword [0xa7018c]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59d659
mov ecx, dword [0xa7018c]
mov edx, dword [ecx + 0x20]
lea eax, [ecx + 0x1c]
mov dword [esp + 0x30], eax
test edx, edx
je 0x59d790
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
jmp 0x59d792
xor eax, eax
lea edi, [esp + 0xb0]
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x2d8]
mov edx, edi
push 0x9ff5e4
call fcn.0057917a
pop eax
lea esi, [esp + 0x70]
mov ecx, esi
call fcn.004c92a1
add eax, 0xcc
xor ecx, ecx
lea edx, [esp + 0x208]
mov dword [esp + 0xb0], 0x9ff61c
mov dword [esp + 0x38], eax
inc ecx
lea eax, [esp + 0x38]
mov dword [esp + 0x464], edx
lea edx, [esp + 0x464]
mov dword [esp + 0x3c], fcn.004c880e
mov dword [esp + 0xb4], ecx
and dword [esp + 0xc0], 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x468], ecx
mov ecx, dword [esp + 0x30]
lea eax, [esp + 0x2d8]
mov dword [esp + 0x208], eax
mov dword [esp + 0x20c], edi
mov dword [esp + 0x210], 0x9fd8ec
mov dword [esp + 0x46c], ecx
mov ecx, dword [0xa7018c]
call fcn.00606f01
jmp 0x59d659
mov bl, 5
cmp al, 5
je 0x59f7fe
mov ecx, dword [esp + 0xb4]
mov edx, eax
mov ebx, eax
shrd edx, ecx, 8
shr ecx, 8
jmp 0x59f7f0
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0xb0]
push edi
call fcn.005a2f2d
pop eax
cmp byte [esp + 0xb0], 5
mov bl, 5
jne 0x59d946
mov ecx, dword [esp + 0x1ac]
mov edx, dword [esp + 0x1a8]
jmp 0x59f79b
xor eax, eax
lea esi, [esp + 0x2d8]
lea edi, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov ecx, esi
mov edx, edi
push 0x9ff0ac
call fcn.0057917a
pop eax
xor ecx, ecx
lea eax, [esp + 0x464]
mov dword [esp + 0xb0], 0x9ff0d8
lea edx, [esp + 0x70]
mov dword [esp + 0x464], esi
mov dword [esp + 0x468], edi
mov dword [esp + 0x46c], 0x9fd8ec
inc ecx
mov dword [esp + 0x70], eax
mov eax, dword [esp + 8]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x74], ecx
mov ecx, dword [0xa7003c]
and dword [esp + 0xc0], 0
mov dword [esp + 0xb8], str.dest_is_out_of_bounds
and dword [esp + 0xbc], 0
mov dword [esp + 0x78], eax
call fcn.00606f01
jmp 0x59d276
mov ebx, dword [esp + 0xb0]
cmp bl, 4
jne 0x59f6f6
mov esi, dword [esp + 0x1b0]
mov edi, dword [esp + 0x28]
mov edx, dword [esp + 0x14]
lea ecx, [esi + 0xc0]
mov dword [esp + 0x20], ecx
push edi
push dword [esp + 0xc]
call fcn.005a2f93
pop ecx
pop edx
mov eax, dword [edi + 0x188]
mov dword [esp + 0x1b4], eax
mov eax, dword [0xa70a24]
test eax, eax
je 0x59f721
lea eax, [esi + 0xe8]
add esi, 0x108
lea edi, [esp + 0x60]
mov dword [esp + 0x1b0], esi
lea esi, [esp + 0x70]
mov dword [esp + 0x30], eax
mov eax, dword [0xa70a24]
mov ebx, dword [esp + 0x1c]
test eax, eax
je 0x59e77a
mov eax, dword [ebx + 0x170]
cmp eax, dword [ebx + 0x174]
jbe 0x59db6b
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0x38]
push dword [esp + 8]
call fcn.004d7d25
pop eax
cmp dword [esp + 0x38], 0
je 0x59db6b
mov eax, dword [esp + 0x40]
movsd xmm0, qword [esp + 0x38]
mov dword [esp + 0x78], eax
movsd qword [esp + 0x70], xmm0
mov eax, dword [0xa70a24]
test eax, eax
je 0x59da37
mov ecx, dword [esp + 0xc]
mov edx, esi
call fcn.004d70d3
mov ecx, dword [esp + 0x20]
mov edx, esi
call fcn.004caf11
mov ecx, esi
call fcn.004c9289
mov ecx, eax
call fcn.004cc1d7
jmp 0x59d9c5
mov ecx, 0xa6f80c
call fcn.0040e00b
test al, al
je 0x59da11
mov ecx, dword [0xa6f80c]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59da11
mov ecx, dword [0xa6f80c]
mov edx, dword [ecx + 0x20]
lea eax, [ecx + 0x1c]
mov dword [esp + 0x10], eax
test edx, edx
je 0x59da97
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
lea edi, [esp + 0x70]
jmp 0x59da9b
xor eax, eax
mov edi, esi
lea esi, [esp + 0x2d8]
lea ebx, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov ecx, esi
mov edx, ebx
push 0x9c4d78
call fcn.0057917a
pop eax
mov ecx, edi
call fcn.004c92a1
add eax, 0xcc
xor ecx, ecx
lea edx, [esp + 0x208]
mov dword [esp + 0xb0], 0x9c4da8
mov dword [esp + 0x208], esi
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x210], 0x9ba4f0
mov dword [esp + 0x98], eax
inc ecx
lea eax, [esp + 0x98]
mov dword [esp + 0x464], edx
lea edx, [esp + 0x464]
mov dword [esp + 0x9c], fcn.004c880e
mov dword [esp + 0xb4], ecx
and dword [esp + 0xc0], 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x468], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x46c], ecx
mov ecx, dword [0xa6f80c]
call fcn.00606f01
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0x60]
mov esi, edi
mov edi, eax
jmp 0x59da11
mov eax, dword [0xa70a24]
test eax, eax
je 0x59e7e1
and dword [esp + 0x2c4], 0
and dword [esp + 0x2c0], 0
and dword [esp + 0x2d0], 0
mov edx, dword [esp + 0x20]
lea ecx, [esp + 0x3d8]
push dword [esp + 8]
call fcn.004da573
pop eax
cmp dword [esp + 0x3d8], 0
je 0x59e876
mov eax, dword [esp + 0x3e0]
movsd xmm0, qword [esp + 0x3d8]
mov dword [esp + 0x68], eax
movsd qword [esp + 0x60], xmm0
mov eax, dword [0xa70a24]
test eax, eax
je 0x59dd93
and dword [esp + 0x1bc], 0
and dword [esp + 0x1b8], 0
and dword [esp + 0x1c8], 0
mov ecx, edi
call fcn.004c92a1
cmp dword [eax + 0x18], 0x3b9aca00
setne byte [esp + 0x27]
mov eax, dword [0xa70a24]
test eax, eax
je 0x59de06
mov ecx, edi
call fcn.004c9289
lea edx, [eax + 0x64]
lea ecx, [esp + 0x2d8]
push dword [esp + 0x14]
call fcn.0058e0d8
pop eax
movzx edx, byte [esp + 0x2d8]
cmp edx, 9
jne 0x59dc8e
mov ecx, edi
call fcn.004c92a1
cmp byte [eax + 0x20], 5
je 0x59eb51
mov eax, dword [0xa70a24]
test eax, eax
je 0x59de6d
mov eax, dword [esp + 0x68]
movsd xmm0, qword [esp + 0x60]
movzx edi, byte [esp + 0x27]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0xb0]
mov dword [esp + 0xb8], eax
movsd qword [esp + 0xb0], xmm0
push edi
call fcn.004c9830
pop eax
jmp 0x59e000
test edx, edx
jne 0x59e87f
lea eax, [esp + 0x2e0]
mov ecx, edi
movsd xmm1, qword [eax + 0x10]
movsd xmm0, qword [eax + 0x18]
movsd xmm2, qword [eax]
movsd qword [esp + 0x80], xmm1
movsd xmm1, qword [eax + 8]
movsd qword [esp + 0x88], xmm0
movsd qword [esp + 0x70], xmm2
movsd qword [esp + 0x78], xmm1
call fcn.004c92a1
mov eax, dword [eax + 0x3c]
mov ecx, esi
mov dword [esp + 0x1ec], eax
call fcn.0058f47f
mov dword [esp + 0x1f0], eax
mov eax, dword [0xa70a24]
test eax, eax
je 0x59deda
mov eax, dword [esp + 0x1f0]
mov esi, dword [esp + 0x1ec]
test eax, eax
je 0x59df54
test esi, esi
jne 0x59df56
mov eax, dword [0xa70a24]
lea esi, [esp + 0x70]
lea ebx, [esp + 0x60]
test eax, eax
je 0x59e216
mov ecx, ebx
call fcn.004c9289
movsd xmm1, qword [esp + 0x80]
lea ecx, [eax + 0x64]
lea eax, [esp + 0xb4]
movsd xmm0, qword [esp + 0x88]
movsd xmm2, qword [esp + 0x70]
mov edx, dword [esp + 0x14]
movsd qword [eax + 0x14], xmm1
movsd xmm1, qword [esp + 0x78]
movsd qword [eax + 0x1c], xmm0
movsd qword [eax + 4], xmm2
movsd qword [eax + 0xc], xmm1
lea eax, [esp + 0xb0]
mov byte [esp + 0xb0], 0
push eax
call fcn.005a41d3
pop eax
mov ebx, dword [esp + 0x1c]
jmp 0x59e000
mov ecx, 0xa700fc
call fcn.0040e00b
test al, al
je 0x59dbda
mov ecx, dword [0xa700fc]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59dbda
mov esi, dword [0xa700fc]
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
test edi, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x5c], edx
je 0x59e044
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], edx
and dword [esp + 0xc0], 0
xor ebx, ebx
inc ebx
jmp 0x59e048
mov ecx, 0xa70108
call fcn.0040e00b
test al, al
je 0x59dc12
mov ecx, dword [0xa70108]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59dc12
mov ecx, dword [0xa70108]
mov edx, dword [ecx + 0x20]
lea esi, [ecx + 0x1c]
test edx, edx
je 0x59e197
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
jmp 0x59e199
mov ecx, 0xa70150
call fcn.0040e00b
test al, al
je 0x59dc58
mov ecx, dword [0xa70150]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59dc58
mov ecx, dword [0xa70150]
mov edi, esi
mov edx, dword [ecx + 0x20]
lea esi, [ecx + 0x1c]
test edx, edx
je 0x59e27d
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
lea edi, [esp + 0x70]
jmp 0x59e27f
mov ecx, 0xa70114
call fcn.0040e00b
test al, al
je 0x59dcfa
mov ecx, dword [0xa70114]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59dcfa
mov eax, dword [0xa70114]
xor esi, esi
mov ebx, dword [eax + 0x20]
mov ecx, dword [eax + 0x1c]
mov edx, dword [eax + 0x24]
mov edi, dword [eax + 0x28]
mov dword [esp + 0x10], eax
test ebx, ebx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x5c], edi
je 0x59e314
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], edi
and dword [esp + 0xc0], 0
xor edi, edi
mov eax, ecx
inc edi
jmp 0x59e318
xor eax, eax
mov ecx, dword [esp + 0x1b4]
mov ebx, 0
lea edi, [esp + 0x60]
cmp eax, ecx
cmovae eax, ecx
test esi, esi
cmovle esi, ebx
cmp eax, esi
cmovb esi, eax
test esi, esi
mov dword [esp + 0x1d0], esi
je 0x59e958
mov ecx, edi
call fcn.004c92a1
mov eax, dword [eax + 0x38]
test eax, eax
cmovle eax, ebx
cmp esi, eax
jbe 0x59e958
mov ecx, edi
call fcn.004c9289
movsd xmm1, qword [esp + 0x80]
lea ecx, [eax + 0x64]
lea eax, [esp + 0xb4]
movsd xmm0, qword [esp + 0x88]
movsd xmm2, qword [esp + 0x70]
mov edx, dword [esp + 0x14]
movsd qword [eax + 0x14], xmm1
movsd xmm1, qword [esp + 0x78]
movsd qword [eax + 0x1c], xmm0
movsd qword [eax + 4], xmm2
movsd qword [eax + 0xc], xmm1
lea eax, [esp + 0xb0]
mov byte [esp + 0xb0], 0
push eax
call fcn.005a41d3
pop eax
mov ebx, dword [esp + 0x1c]
lea esi, [esp + 0x70]
movzx eax, byte [esp + 0x2d8]
mov edi, esi
cmp eax, 9
je 0x59e024
test eax, eax
je 0x59e024
cmp eax, 3
je 0x59e024
lea ecx, [esp + 0x2d8]
call fcn.0058a9e4
lea esi, [esp + 0x1b8]
mov ecx, esi
call fcn.0058bfa1
mov ecx, esi
call fcn.004cb2d7
mov esi, edi
lea edi, [esp + 0x60]
jmp 0x59db90
xor ebx, ebx
xor eax, eax
lea ecx, [esi + 0x1c]
mov dword [esp + 0xb0], eax
lea edx, [esp + 0xb0]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0x208]
push 0x9ff3e8
call fcn.0057917a
pop eax
lea ecx, [esp + 0x60]
call fcn.004c92a1
add eax, 0xcc
cmp ebx, edi
mov dword [esp + 0x98], eax
mov eax, 0
jae 0x59e0b5
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xb4], edi
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc0], ebx
lea edi, [esp + 0xb0]
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x2d8]
mov edx, edi
push 0x9ff3e8
call fcn.0057917a
pop eax
lea ebx, [esp + 0x60]
mov ecx, ebx
call fcn.004c92a1
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x208]
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], 2
add eax, 0x20
mov edi, ebx
mov dword [esp + 0xb0], edx
lea edx, [esp + 0x2d8]
mov dword [esp + 0x38], eax
mov dword [esp + 0x78], ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], 0x9ff104
mov dword [esp + 0xbc], edx
lea ecx, [esp + 0x38]
mov edx, esi
lea esi, [esp + 0x70]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], 0x9ff3f8
lea ecx, [esp + 0x1b8]
push esi
call fcn.00605c1b
pop eax
mov eax, dword [esp + 0x1b8]
mov ebx, dword [esp + 0x1c]
or eax, dword [esp + 0x1bc]
je 0x59dbf2
mov ecx, dword [esp + 0x1c0]
mov edx, dword [esp + 0x1c4]
lea eax, [esp + 0x1b8]
push eax
call fcn.00606ebe
pop eax
jmp 0x59dbf2
xor eax, eax
lea ebx, [esp + 0x2d8]
lea edi, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov ecx, ebx
mov edx, edi
push 0x9ff408
call fcn.0057917a
pop eax
mov ecx, dword [0xa70108]
lea edx, [esp + 0x208]
lea eax, [esp + 0x27]
mov dword [esp + 0xb0], ebx
mov dword [esp + 0x208], edi
mov dword [esp + 0x20c], 1
mov dword [esp + 0x210], esi
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], 0x9fea18
call fcn.00606f01
mov ebx, dword [esp + 0x1c]
lea esi, [esp + 0x70]
lea edi, [esp + 0x60]
jmp 0x59dc12
mov ecx, 0xa70120
call fcn.0040e00b
test al, al
je 0x59dd2d
mov ecx, dword [0xa70120]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59dd2d
mov ecx, dword [0xa70120]
mov edx, dword [ecx + 0x20]
lea esi, [ecx + 0x1c]
test edx, edx
je 0x59e6d3
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
jmp 0x59e6d5
xor eax, eax
mov ecx, edi
lea edi, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov edx, edi
push 0x9ff4c4
call fcn.0057917a
pop eax
xor ecx, ecx
lea eax, [esp + 0x70]
mov dword [esp + 0xb0], 0x9ff500
lea edx, [esp + 0x98]
mov dword [esp + 0x38], eax
inc ecx
lea eax, [esp + 0x38]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], 0x9fd8ec
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
mov ecx, dword [0xa70150]
and dword [esp + 0xc0], 0
mov dword [esp + 0xb8], str.dest_is_out_of_bounds
and dword [esp + 0xbc], 0
mov dword [esp + 0xa0], esi
call fcn.00606f01
lea esi, [esp + 0x70]
jmp 0x59dc58
xor edi, edi
xor eax, eax
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x428]
lea edx, [esp + 0xb0]
push 0x9ff428
call fcn.0057917a
pop eax
mov dword [esp + 0x38], 0x9ff444
mov dword [esp + 0x3c], 1
and dword [esp + 0x48], 0
mov dword [esp + 0x40], str.dest_is_out_of_bounds
and dword [esp + 0x44], 0
cmp edi, ebx
jae 0x59e387
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x18]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], edi
inc edi
mov dword [esp + 0xb0], esi
lea ecx, [esp + 0x43c]
lea edx, [esp + 0xb0]
push 0x9ff428
call fcn.0057917a
pop eax
xor esi, esi
cmp edi, ebx
jae 0x59e3d8
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc0], edi
inc edi
jmp 0x59e3da
xor eax, eax
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x450]
lea edx, [esp + 0xb0]
push 0x9ff428
call fcn.0057917a
pop eax
mov al, byte [esp + 0x8e]
and al, 1
cmp edi, ebx
mov byte [esp + 0x97], al
jae 0x59e437
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x18]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], edi
inc edi
mov dword [esp + 0xb0], esi
lea ecx, [esp + 0x3e4]
lea edx, [esp + 0xb0]
push 0x9ff428
call fcn.0057917a
pop eax
lea eax, [esp + 0x1ec]
xor esi, esi
cmp edi, ebx
mov dword [esp + 0x3a0], eax
jae 0x59e496
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc0], edi
inc edi
jmp 0x59e498
xor eax, eax
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x3a4]
lea edx, [esp + 0xb0]
push 0x9ff428
call fcn.0057917a
pop eax
lea ecx, [esp + 0x60]
call fcn.004c92a1
mov eax, dword [eax + 0x3c]
lea ecx, [esp + 0x3bc]
cmp edi, ebx
mov dword [esp + 0x3b8], ecx
mov dword [esp + 0x3bc], eax
jae 0x59e506
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x5c]
mov esi, dword [esp + 0x18]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], edi
inc edi
mov eax, dword [esp + 0x10]
mov dword [esp + 0xb0], esi
lea ecx, [esp + 0x1f4]
lea edx, [esp + 0xb0]
add eax, 0x1c
mov dword [esp + 0x10], eax
push 0x9ff428
call fcn.0057917a
pop eax
lea ecx, [esp + 0x60]
call fcn.004c92a1
mov esi, eax
xor eax, eax
add esi, 0xd4
cmp edi, ebx
jae 0x59e570
mov eax, dword [esp + 0x2c]
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0xc0], edi
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x98]
lea edx, [esp + 0xb0]
push 0x9ff428
call fcn.0057917a
pop eax
lea ecx, [esp + 0x60]
call fcn.004c92a1
lea ecx, [esp + 0x428]
mov edi, 0x9fe8c8
mov edx, 0x9ff44c
add eax, 0xd8
mov dword [esp + 0xb0], ecx
lea ecx, [esp + 0x38]
mov dword [esp + 0xb4], ecx
lea ecx, [esp + 0x43c]
mov dword [esp + 0xb8], 0x9fd8ec
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0x1f0]
mov dword [esp + 0xc0], ecx
lea ecx, [esp + 0x450]
mov dword [esp + 0xc4], edi
mov dword [esp + 0xc8], ecx
lea ecx, [esp + 0x97]
mov dword [esp + 0xcc], ecx
lea ecx, [esp + 0x3e4]
mov dword [esp + 0xd0], 0x9fea18
mov dword [esp + 0xd4], ecx
lea ecx, [esp + 0x3a0]
mov dword [esp + 0xd8], ecx
lea ecx, [esp + 0x3a4]
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe0], ecx
lea ecx, [esp + 0x3b8]
mov dword [esp + 0xe4], ecx
lea ecx, [esp + 0x1f4]
mov dword [esp + 0xe8], edx
lea edx, [esp + 0xb0]
mov dword [esp + 0xec], ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], 0x9ff45c
mov dword [esp + 0x1d0], edx
mov dword [esp + 0x1d4], 7
lea edx, [esp + 0x1d0]
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xfc], eax
mov dword [esp + 0x100], edi
mov dword [esp + 0x1d8], ecx
mov ecx, dword [0xa70114]
call fcn.00606f01
jmp 0x59dcfa
xor eax, eax
lea ebx, [esp + 0x38]
lea edi, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov ecx, ebx
mov edx, edi
push 0x9ff46c
call fcn.0057917a
pop eax
xor eax, eax
lea ecx, [esp + 0x98]
mov dword [esp + 0xb0], 0x9ff490
lea edx, [esp + 0x1f4]
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], 0x9fd8ec
inc eax
mov dword [esp + 0x1f4], ecx
mov ecx, dword [0xa70120]
mov dword [esp + 0xb4], eax
and dword [esp + 0xc0], 0
mov dword [esp + 0xb8], str.dest_is_out_of_bounds
and dword [esp + 0xbc], 0
mov dword [esp + 0x1f8], eax
mov dword [esp + 0x1fc], esi
call fcn.00606f01
lea esi, [esp + 0x70]
lea ebx, [esp + 0x60]
jmp 0x59dd2d
mov ecx, 0xa6f800
call fcn.0040e00b
test al, al
je 0x59d9c5
mov ecx, dword [0xa6f800]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59d9c5
mov ecx, dword [0xa6f800]
mov edx, dword [ecx + 0x20]
lea esi, [ecx + 0x1c]
test edx, edx
je 0x59ee88
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
jmp 0x59ee8a
mov ecx, 0xa700f0
call fcn.0040e00b
test al, al
je 0x59db78
mov ecx, dword [0xa700f0]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59db78
mov edx, dword [0xa700f0]
mov dword [esp + 0xb0], str.dest_is_out_of_bounds
and dword [esp + 0xb4], 0
lea ecx, [esp + 0x2c0]
lea eax, [edx + 0x1c]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xb0]
push eax
call fcn.00605c1b
pop eax
mov eax, dword [esp + 0x2c0]
or eax, dword [esp + 0x2c4]
je 0x59db90
mov ecx, dword [esp + 0x2c8]
mov edx, dword [esp + 0x2cc]
lea eax, [esp + 0x2c0]
push eax
call fcn.00606ebe
pop eax
jmp 0x59db90
mov edi, esi
mov bl, 9
jmp 0x59f0ba
cmp edx, 3
jne 0x59eba3
push 0xa4
lea eax, [esp + 0x2e4]
push eax
lea eax, [esp + 0xb8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x388]
mov esi, dword [esp + 0x384]
mov ecx, dword [esp + 0x38c]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x98], eax
lea eax, [esp + 0x1f4]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x1f4], esi
lea ecx, [esp + 0x70]
push eax
call fcn.004da3d5
pop eax
cmp dword [esp + 0x70], 0
je 0x59fe33
mov eax, dword [esp + 0x78]
movsd xmm0, qword [esp + 0x70]
lea edi, [esp + 0x38]
mov ecx, edi
mov dword [esp + 0x40], eax
movsd qword [esp + 0x38], xmm0
call fcn.004c9289
mov ecx, edi
mov byte [eax + 0xe5], 0
call fcn.004c92a1
cmp dword [eax + 0x64], 0
je 0x59ee09
mov eax, dword [ebx + 0x170]
cmp eax, dword [ebx + 0x174]
jbe 0x59edfc
mov ecx, dword [esp + 0xc]
lea edi, [esp + 0x38]
mov edx, edi
call fcn.004d70d3
mov ecx, dword [esp + 0x20]
mov edx, edi
call fcn.004caf11
jmp 0x59ee09
mov eax, dword [0xa70a24]
lea edi, [esp + 0xb0]
test eax, eax
je 0x59ebed
mov eax, dword [0xa70a24]
test eax, eax
je 0x59ec60
and dword [esp + 0x9c], 0
and dword [esp + 0x98], 0
and dword [esp + 0xa8], 0
mov ebx, dword [esp + 0x1c]
lea ecx, [esp + 0x60]
call fcn.004c9289
mov edx, dword [ebx + 0x114]
mov esi, eax
lea ecx, [eax + 0x38]
mov edi, dword [esp + 0x1d0]
mov dword [esp + 0x428], edx
mov dword [esp + 0x10], edx
mov ebx, dword [eax + 0x3c]
mov eax, 0
test ebx, ebx
cmovle ebx, eax
cmp ebx, edx
cmovae ebx, edx
mov edx, edi
sub ebx, dword [esi + 0xd8]
cmovb ebx, eax
mov dword [esp + 0x43c], ebx
call fcn.004d723e
sub dword [esi + 0xd8], edi
sub dword [esi + 0xd4], edi
mov ecx, esi
mov eax, dword [0xa70a24]
test eax, eax
je 0x59ecf2
mov esi, dword [esp + 0x10]
lea edi, [esp + 0x70]
mov eax, dword [ecx + 0x3c]
mov edx, 0
test eax, eax
cmovle eax, edx
cmp eax, esi
cmovae eax, esi
sub eax, dword [ecx + 0xd8]
cmovb eax, edx
cmp ebx, eax
jae 0x59ea2b
call fcn.004cc0e7
mov eax, dword [esp + 0x1d0]
mov ecx, dword [esp + 0x1c]
lea esi, [esp + 0x98]
add dword [ecx + 0x10c], eax
mov ecx, esi
call fcn.0058bfa1
mov ecx, esi
call fcn.004cb2d7
mov eax, dword [0xa70a24]
mov esi, dword [esp + 0x1b0]
test eax, eax
je 0x59ed73
and dword [esp + 0xb4], 0
and dword [esp + 0xb0], 0
and dword [esp + 0xc0], 0
mov edx, dword [esp + 0x1d0]
mov ecx, esi
call fcn.004d723e
movzx ebx, byte [esp + 0x8e]
mov esi, dword [esp + 0x1d0]
mov ecx, edi
mov eax, ebx
and al, 1
mov byte [esp + 0x10], al
call fcn.0058f47f
mov ecx, ebx
lea edi, [esp + 0xb0]
and cl, 0xfe
cmp eax, esi
movzx eax, cl
mov ecx, edi
cmovbe eax, ebx
mov ebx, eax
call fcn.0058bfa1
mov ecx, edi
call fcn.004cb2d7
movsd xmm0, qword [esp + 0x80]
movsd xmm2, qword [esp + 0x70]
movsd xmm1, qword [esp + 0x78]
lea eax, [esp + 0x210]
mov edi, dword [esp + 0x64]
mov dl, byte [esp + 0x10]
movzx ecx, word [esp + 0x8c]
movsd qword [eax + 0x10], xmm0
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm2
mov eax, dword [esp + 0x88]
mov dword [esp + 0x240], eax
mov dword [esp + 0x228], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x230], edi
mov dword [esp + 0x234], esi
mov byte [esp + 0x238], dl
mov byte [esp + 0x246], bl
mov word [esp + 0x244], cx
mov byte [esp + 0x208], 0
jmp 0x59ee51
mov edi, dword [eax + 0x24]
lea ebx, [esp + 0x60]
mov ecx, ebx
call fcn.004c92a1
mov esi, dword [eax + 0xcc]
mov ecx, ebx
call fcn.004c9289
lea ecx, [eax + 0x20]
mov edx, esi
push 1
push edi
call fcn.004da336
pop eax
pop ecx
mov ecx, ebx
call fcn.004c92a1
mov eax, dword [eax + 0xcc]
mov dword [esp + 0x20c], eax
mov dword [esp + 0x210], edi
mov byte [esp + 0x208], 8
jmp 0x59ee51
dec edx
mov ecx, dword [esp + 0x2dc]
mov eax, dword [esp + 0x2e0]
mov edx, dword [edx*4 + 0x59fe48]
add edx, dword [esp + 0x394]
jmp edx
mov ecx, 0xa7012c
call fcn.0040e00b
test al, al
je 0x59e96c
mov ecx, dword [0xa7012c]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59e96c
mov esi, dword [0xa7012c]
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
test ebx, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], edx
je 0x59f4c5
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], edx
and dword [esp + 0xc0], 0
xor edi, edi
inc edi
jmp 0x59f4c9
mov ecx, 0xa70138
call fcn.0040e00b
test al, al
je 0x59e979
mov ecx, dword [0xa70138]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59e979
mov edx, dword [0xa70138]
mov dword [esp + 0xb0], str.dest_is_out_of_bounds
and dword [esp + 0xb4], 0
lea ecx, [esp + 0x98]
lea eax, [edx + 0x1c]
mov dword [esp + 0xb8], eax
push edi
call fcn.00605c1b
pop eax
mov eax, dword [esp + 0x98]
mov ebx, dword [esp + 0x1c]
or eax, dword [esp + 0x9c]
je 0x59e995
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa4]
lea eax, [esp + 0x98]
push eax
call fcn.00606ebe
pop eax
jmp 0x59e995
mov dword [esp + 0x18], ecx
mov ecx, 0xa6fa7c
call fcn.0040e00b
test al, al
lea edi, [esp + 0x70]
je 0x59ef36
mov ecx, dword [0xa6fa7c]
movzx edx, al
call fcn.00605cf4
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
test al, al
je 0x59ea07
lea edi, [ecx + 0xd8]
mov ecx, dword [0xa6fa7c]
mov edx, dword [ecx + 0x20]
lea eax, [ecx + 0x1c]
mov dword [esp + 0x10], eax
test edx, edx
je 0x59f5ca
mov eax, dword [ecx + 0x1c]
mov ebx, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
jmp 0x59f5cc
mov ecx, 0xa70144
call fcn.0040e00b
test al, al
je 0x59ea65
mov ecx, dword [0xa70144]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59ea65
mov edx, dword [0xa70144]
mov dword [esp + 0x38], str.dest_is_out_of_bounds
and dword [esp + 0x3c], 0
lea ecx, [esp + 0xb0]
lea eax, [edx + 0x1c]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x38]
push eax
call fcn.00605c1b
pop eax
mov eax, dword [esp + 0xb0]
or eax, dword [esp + 0xb4]
je 0x59ea7d
mov ecx, dword [esp + 0xb8]
mov edx, dword [esp + 0xbc]
lea eax, [esp + 0xb0]
push eax
call fcn.00606ebe
pop eax
jmp 0x59ea7d
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x38]
call fcn.004d7369
push 0xa4
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0x218]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x2b4], esi
mov dword [esp + 0x2bc], ecx
mov dword [esp + 0x2b8], eax
mov byte [esp + 0x208], 3
movzx eax, byte [esp + 0x2d8]
lea edi, [esp + 0x70]
cmp eax, 9
je 0x59f01a
test eax, eax
je 0x59f01a
cmp eax, 3
je 0x59f01a
lea ecx, [esp + 0x2d8]
call fcn.0058a9e4
jmp 0x59f01a
xor eax, eax
lea ebx, [esp + 0x2d8]
lea edi, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov ecx, ebx
mov edx, edi
push 0x9c4d48
call fcn.0057917a
pop eax
xor ecx, ecx
lea eax, [esp + 0x208]
mov dword [esp + 0xb0], 0x9c4d70
lea edx, [esp + 0x464]
mov dword [esp + 0x208], ebx
mov dword [esp + 0x20c], edi
mov dword [esp + 0x210], 0x9ba4f0
inc ecx
mov dword [esp + 0x464], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x468], ecx
mov ecx, dword [0xa6f800]
and dword [esp + 0xc0], 0
mov dword [esp + 0xb8], str.dest_is_out_of_bounds
and dword [esp + 0xbc], 0
mov dword [esp + 0x46c], esi
call fcn.00606f01
mov ebx, dword [esp + 0x1c]
lea esi, [esp + 0x70]
lea edi, [esp + 0x60]
jmp 0x59d9c5
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x10]
jmp 0x59ea07
mov eax, dword [0xa70a24]
test eax, eax
je 0x59f21c
lea esi, [esp + 0x60]
mov ecx, esi
call fcn.004c92a1
cmp dword [eax + 0x64], 0
jne 0x59f045
mov ecx, esi
call fcn.004c92a1
cmp byte [eax + 0x20], 5
jne 0x59f050
mov ecx, dword [esp + 0x20]
mov edx, esi
call fcn.004caf11
mov eax, dword [esp + 0x68]
movsd xmm0, qword [esp + 0x60]
mov ecx, dword [esp + 0xc]
lea edx, [esp + 0xb0]
mov dword [esp + 0xb8], eax
movzx eax, byte [esp + 0x27]
movsd qword [esp + 0xb0], xmm0
push eax
call fcn.004c9830
pop eax
mov bl, byte [esp + 0x208]
push 0xb7
lea eax, [esp + 0x20d]
push eax
lea eax, [esp + 0x46c]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea esi, [esp + 0x1b8]
mov ecx, esi
call fcn.0058bfa1
mov ecx, esi
call fcn.004cb2d7
lea esi, [esp + 0x2c0]
mov ecx, esi
call fcn.0058bfa1
mov ecx, esi
call fcn.004cb2d7
cmp bl, 9
jne 0x59f12c
mov edx, dword [esp + 0x34]
lea ecx, [esp + 0xb0]
push dword [ebp + 8]
call fcn.005a3482
pop eax
cmp byte [esp + 0xb0], 5
je 0x59f70b
mov ebx, dword [esp + 0xb0]
cmp bl, 4
jne 0x59f70f
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov esi, edi
push dword [esp + 0x28]
push dword [esp + 0xc]
call fcn.005a2f93
pop ecx
pop edx
test al, al
jne 0x59f213
jmp 0x59f788
mov byte [esp + 0x2d8], bl
push 0xb7
lea eax, [esp + 0x468]
push eax
lea eax, [esp + 0x2e1]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0xa70a24]
test eax, eax
je 0x59f280
cmp byte [esp + 0x2d8], 0
jne 0x59f18f
mov eax, dword [esp + 0x300]
mov ecx, dword [esp + 0x304]
mov edx, dword [esp + 0x1c]
mov dword [edx + 0xfc], 1
mov dword [edx + 0x100], eax
mov dword [edx + 0x104], ecx
push 0xb8
lea eax, [esp + 0x2dc]
push eax
lea esi, [esp + 0xb8]
push esi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ebx, dword [esp + 0x34]
mov edx, esi
mov ecx, ebx
call fcn.00586238
movzx ecx, al
mov edx, str.invalid_frame
push 0x9ff32c
push 0xd
call fcn.00587a74
pop eax
pop ecx
mov ecx, esi
mov edx, ebx
push dword [ebp + 8]
call fcn.005a2f2d
pop eax
cmp byte [esp + 0xb0], 5
je 0x59f70b
mov ebx, dword [esp + 0xb0]
cmp bl, 4
jne 0x59f70f
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
push dword [esp + 0x28]
push dword [esp + 0xc]
call fcn.005a2f93
pop ecx
pop edx
mov esi, edi
lea edi, [esp + 0x60]
jmp 0x59d9b4
mov ecx, 0xa7015c
call fcn.0040e00b
test al, al
je 0x59f027
mov ecx, dword [0xa7015c]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59f027
mov ecx, dword [0xa7015c]
mov edx, dword [ecx + 0x20]
lea esi, [ecx + 0x1c]
test edx, edx
je 0x59f2f3
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
jmp 0x59f2f5
mov ecx, 0xa700c0
call fcn.0040e00b
test al, al
je 0x59f15d
mov ecx, dword [0xa700c0]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59f15d
mov esi, dword [0xa700c0]
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x1c]
mov ecx, dword [esi + 0x24]
mov edx, dword [esi + 0x28]
test ebx, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], edx
je 0x59f39a
mov dword [esp + 0xb4], ebx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], edx
and dword [esp + 0xc0], 0
xor edi, edi
inc edi
jmp 0x59f39e
xor eax, eax
lea edi, [esp + 0xb0]
lea ebx, [esp + 0x2d8]
mov dword [esp + 0xb0], eax
mov ecx, ebx
mov edx, edi
push 0x9ff508
call fcn.0057917a
pop eax
lea eax, [esp + 0x208]
lea ecx, [esp + 0x98]
mov dword [esp + 0xb0], 0x9ff52c
mov dword [esp + 0x70], ebx
lea ebx, [esp + 0x70]
lea edx, [esp + 0x38]
mov dword [esp + 0x74], edi
mov dword [esp + 0x78], 0x9fd8ec
mov dword [esp + 0x98], eax
xor eax, eax
mov dword [esp + 0x9c], fcn.005a3f1c
mov dword [esp + 0x38], ebx
inc eax
mov dword [esp + 0xb4], eax
and dword [esp + 0xc0], 0
mov dword [esp + 0xb8], ecx
mov ecx, dword [0xa7015c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0xbc], eax
mov dword [esp + 0x40], esi
call fcn.00606f01
mov edi, ebx
jmp 0x59f027
xor edi, edi
xor eax, eax
add esi, 0x1c
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x38]
lea edx, [esp + 0xb0]
push 0x9ff2fc
call fcn.0057917a
pop eax
mov dword [esp + 0xb0], 0x9ff314
mov dword [esp + 0xb4], 1
and dword [esp + 0xc0], 0
mov dword [esp + 0xb8], str.dest_is_out_of_bounds
and dword [esp + 0xbc], 0
cmp edi, ebx
mov eax, 0
jae 0x59f420
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20c], ebx
mov dword [esp + 0x210], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x214], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x218], edi
lea edi, [esp + 0x208]
lea ebx, [esp + 0x70]
mov dword [esp + 0x208], eax
mov ecx, ebx
mov edx, edi
push 0x9ff2fc
call fcn.0057917a
pop eax
lea ecx, [esp + 0x38]
lea edx, [esp + 0xb0]
lea eax, [esp + 0x2d8]
mov dword [esp + 0x98], edi
mov dword [esp + 0x9c], 2
mov dword [esp + 0xa0], esi
mov dword [esp + 0x208], ecx
lea ecx, [esp + 0x1b8]
mov dword [esp + 0x20c], edx
mov dword [esp + 0x210], 0x9fd8ec
mov dword [esp + 0x214], ebx
lea edx, [esp + 0x98]
mov dword [esp + 0x1b8], eax
mov dword [esp + 0x218], ecx
mov ecx, dword [0xa700c0]
mov dword [esp + 0x21c], 0x9fe874
call fcn.00606f01
mov edi, ebx
jmp 0x59f15d
xor edi, edi
xor eax, eax
add esi, 0x1c
mov dword [esp + 0xb0], eax
lea ecx, [esp + 0x1f4]
lea edx, [esp + 0xb0]
push 0x9ff498
call fcn.0057917a
pop eax
mov dword [esp + 0xb0], 0x9ff4bc
mov dword [esp + 0xb4], 1
and dword [esp + 0xc0], 0
mov dword [esp + 0xb8], str.dest_is_out_of_bounds
and dword [esp + 0xbc], 0
cmp edi, ebx
mov eax, 0
jae 0x59f542
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x48], edi
lea ebx, [esp + 0x38]
mov dword [esp + 0x38], eax
lea ecx, [esp + 0x98]
mov edx, ebx
push 0x9ff498
call fcn.0057917a
pop eax
lea eax, [esp + 0x1f4]
lea edi, [esp + 0xb0]
lea edx, [esp + 0x98]
lea ecx, [esp + 0x1d0]
mov dword [esp + 0x3a4], ebx
mov dword [esp + 0x3a8], 2
mov dword [esp + 0x3ac], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], 0x9fd8ec
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], ecx
mov ecx, dword [0xa7012c]
lea edx, [esp + 0x3a4]
mov dword [esp + 0x4c], 0x9ff45c
call fcn.00606f01
jmp 0x59e96c
xor eax, eax
lea ebx, [esp + 0xb0]
lea ecx, [esp + 0x1f4]
mov dword [esp + 0xb0], eax
mov edx, ebx
push 0x9c618c
call fcn.0057917a
pop eax
mov esi, dword [esp + 0x18]
mov ecx, fcn.0043ddb0
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x38], 0x9c61bc
mov dword [esp + 0x450], eax
lea eax, [esp + 0x450]
mov dword [esp + 0xb0], eax
mov eax, esi
mov dword [esp + 0xb4], 0x4cc0e2
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
add eax, 0xcc
mov dword [esp + 0xc0], eax
lea eax, [esp + 0x428]
mov dword [esp + 0xc4], fcn.004c880e
mov dword [esp + 0xc8], eax
lea eax, [esp + 0x43c]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], ecx
push 5
pop eax
lea edx, [esp + 0x1f4]
lea ecx, [esp + 0x38]
mov dword [esp + 0x3c], eax
and dword [esp + 0x48], 0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], eax
mov dword [esp + 0x3a4], edx
mov dword [esp + 0x3a8], ecx
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x3a4]
mov dword [esp + 0x3ac], 0x9ba4f0
mov dword [esp + 0x3e4], edx
mov dword [esp + 0x3e8], 1
lea edx, [esp + 0x3e4]
mov dword [esp + 0x3ec], ecx
mov ecx, dword [0xa6fa7c]
call fcn.00606f01
mov ecx, esi
mov ebx, dword [esp + 0x43c]
mov esi, dword [esp + 0x428]
jmp 0x59ea03
mov ecx, dword [esp + 0xb4]
mov edx, ebx
shrd edx, ecx, 8
shr ecx, 8
jmp 0x59f79b
mov bl, 5
jmp 0x59f78a
mov ecx, dword [esp + 0xb4]
mov edx, ebx
shrd edx, ecx, 8
shr ecx, 8
jmp 0x59f798
mov ecx, 0xa700b4
call fcn.0040e00b
test al, al
je 0x59d995
mov ecx, dword [0xa700b4]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59d995
mov ecx, dword [0xa700b4]
mov edx, dword [ecx + 0x20]
lea esi, [ecx + 0x1c]
test edx, edx
je 0x59f8c4
mov eax, dword [ecx + 0x1c]
mov edi, dword [ecx + 0x24]
mov ecx, dword [ecx + 0x28]
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
and dword [esp + 0xc0], 0
jmp 0x59f8c6
mov bl, 4
mov ecx, dword [esp + 0x1ac]
mov edx, dword [esp + 0x1a8]
mov edi, dword [ebp + 8]
cmp bl, 5
mov dword [esp + 0x1ac], ecx
mov dword [esp + 0x1a8], edx
je 0x59f7fe
movzx eax, bl
cmp eax, 4
jne 0x59f7f0
mov eax, dword [edi]
mov ecx, dword [eax]
push dword [eax + 4]
call dword [ecx]
add esp, 4
mov ebx, dword [esp + 0x1c]
mov esi, eax
mov edi, edx
mov eax, dword [ebx + 0xb0]
test eax, eax
je 0x59f7e0
push dword [ebx + 0xb4]
call dword [eax + 0xc]
add esp, 4
mov dword [ebx + 0xb0], esi
mov dword [ebx + 0xb4], edi
mov bl, 4
jmp 0x59f7fe
mov dword [esp + 0x1dc], edx
mov dword [esp + 0x1e0], ecx
mov al, byte [esp + 7]
mov ecx, dword [esp + 0x54]
movzx edx, al
call fcn.00608264
movzx edx, byte [esp + 0x96]
mov ecx, dword [esp + 0x1c]
call fcn.00608264
cmp bl, 4
jne 0x59fc21
mov eax, dword [esp + 0x1e4]
cmp dword [eax], 0
mov eax, dword [esp + 0x28]
jne 0x59f862
cmp byte [eax + 0x234], 0
jne 0x59fc29
cmp dword [eax + 0x210], 0
je 0x59fc29
cmp dword [eax + 0x214], 0x7fffffff
je 0x59fc29
mov edx, dword [eax + 0x258]
lea esi, [esp + 0xb0]
mov ecx, esi
add edx, 8
call fcn.004c8758
mov ecx, esi
mov edx, 0x9ffc8c
call fcn.0058b85e
mov esi, dword [eax + 0x174]
mov edi, dword [eax + 0x17c]
movzx edx, dl
mov ecx, eax
call fcn.00608264
mov ebx, dword [esp + 0x28]
or edi, esi
jne 0x59fc29
mov edx, dword [ebx + 0x258]
mov ecx, dword [esp + 0x1e8]
add edx, 8
push 0
call fcn.005a2e79
pop eax
jmp 0x59d2fd
xor eax, eax
lea ebx, [esp + 0x2d8]
lea edi, [esp + 0xb0]
mov dword [esp + 0xb0], eax
mov ecx, ebx
mov edx, edi
push 0x9ff2d4
call fcn.0057917a
pop eax
xor ecx, ecx
lea eax, [esp + 0x208]
mov dword [esp + 0xb0], 0x9ff2f4
lea edx, [esp + 0x464]
mov dword [esp + 0x208], ebx
mov dword [esp + 0x20c], edi
mov dword [esp + 0x210], 0x9fd8ec
inc ecx
mov dword [esp + 0x464], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x468], ecx
mov ecx, dword [0xa700b4]
and dword [esp + 0xc0], 0
mov dword [esp + 0xb8], str.dest_is_out_of_bounds
and dword [esp + 0xbc], 0
mov dword [esp + 0x46c], esi
call fcn.00606f01
mov esi, dword [esp + 0x1b0]
jmp 0x59d995
mov ecx, 0xa7006c
call fcn.0040e00b
test al, al
je 0x59c96e
mov ecx, dword [0xa7006c]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59c96e
mov edx, dword [0xa7006c]
lea edi, [esp + 0xb0]
lea esi, [esp + 0x410]
mov dword [edi], str.dest_is_out_of_bounds
and dword [edi + 4], 0
mov ecx, esi
lea eax, [edx + 0x1c]
mov dword [edi + 8], eax
push edi
mov ebx, dword [esp + 0x2c]
call fcn.00605c1b
pop eax
mov eax, dword [esi]
or eax, dword [esi + 4]
je 0x59c986
mov ecx, dword [esp + 0x418]
mov edx, dword [esp + 0x41c]
push esi
call fcn.00606ebe
pop eax
jmp 0x59c986
mov ecx, dword [esp + 0x1e4]
mov eax, ebx
mov edi, dword [ebx + 0x254]
mov bl, byte [ebx + 0x251]
and dword [esp + 0x2e0], 0
and dword [esp + 0x2e4], 0
and dword [esp + 0x2e8], 0
mov dword [esp + 0x2d8], 0xa00c50
mov dword [esp + 0x2dc], str.dest_is_out_of_bounds
movsd xmm2, qword [ecx]
movsd xmm0, qword [ecx + 0x10]
movsd xmm1, qword [ecx + 8]
and dword [eax + 0x260], 0
movsd qword [esp + 0xb0], xmm2
movsd qword [esp + 0xc0], xmm0
movsd qword [esp + 0xb8], xmm1
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x59faa5
lea esi, [esp + 0xb0]
lea ecx, [esp + 0x208]
mov edx, esi
call fcn.0043d00e
mov esi, dword [esi + 0x14]
lea ecx, [esp + 0x2d8]
call fcn.00579450
jmp 0x59fad7
mov ecx, dword [esp + 0x58]
push dword [esp + 0x2dc]
call fcn.005a2e5e
pop eax
jmp 0x59fc30
mov esi, dword [esp + 0x2e8]
movsd xmm0, qword [esp + 0x2d8]
movsd xmm1, qword [esp + 0x2e0]
mov dword [esp + 0x218], esi
movsd qword [esp + 0x210], xmm1
movsd qword [esp + 0x208], xmm0
movsd xmm0, qword [esp + 0x208]
movsd xmm1, qword [esp + 0x210]
lea ecx, [esp + 0xb0]
movsd qword [esp + 0x2e0], xmm1
movsd qword [esp + 0x2d8], xmm0
call fcn.004e4eee
mov eax, esi
or eax, edi
je 0x59fb42
test esi, esi
je 0x59fbf0
movsd xmm0, qword [esp + 0x2d8]
mov eax, dword [esp + 0x58]
movsd xmm1, qword [esp + 0x2e0]
movsd qword [eax + 0x10], xmm1
movsd qword [eax + 8], xmm0
mov dword [eax + 4], esi
mov word [eax], 0x201
jmp 0x59fc30
mov eax, dword [esp + 0x58]
mov byte [eax], 3
jmp 0x59fc13
mov al, byte [esp + 0xc]
mov byte [esp + 0x1b8], al
mov eax, dword [0xa70a24]
cmp eax, 1
ja 0x59fda0
mov ecx, 0xa70024
call fcn.0040e00b
test al, al
je 0x59fda0
mov ecx, dword [0xa70024]
movzx edx, al
call fcn.00605cf4
test al, al
je 0x59fda0
mov ecx, dword [0xa70024]
mov eax, dword [ecx + 0x1c]
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x1a4], eax
mov eax, dword [ecx + 0x24]
test edx, edx
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], eax
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x30], eax
je 0x59fc83
mov dword [esp + 0xb4], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0xb8], edx
mov dword [esp + 0xbc], eax
and dword [esp + 0xc0], 0
xor eax, eax
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x1a4]
jmp 0x59fc8d
mov eax, dword [esp + 0x58]
mov byte [eax], 1
mov byte [eax + 1], bl
mov dword [eax + 4], edi
mov dword [eax + 8], 0xa00c50
mov dword [eax + 0xc], str.dest_is_out_of_bounds
and dword [eax + 0x10], 0
and dword [eax + 0x14], 0
lea ecx, [esp + 0x2d8]
call fcn.00579450
jmp 0x59fc30
movzx eax, bl
cmp eax, 5
jne 0x59fc62
mov eax, dword [esp + 0x58]
mov byte [eax], 4
lea esi, [esp + 0x410]
mov ecx, esi
call fcn.0058bfa1
mov ecx, esi
call fcn.004cb2d7
lea esi, [esp + 0x3f8]
mov ecx, esi
call fcn.0058bfa1
mov ecx, esi
call fcn.004cb2d7
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [esp + 0x1e0]
mov edx, dword [esp + 0x1dc]
mov ecx, dword [esp + 0x58]
shld esi, edx, 8
shl edx, 8
or edx, eax
push esi
jmp 0x59fa9a
mov dword [esp + 0x14], 0
xor eax, eax
add ecx, 0x1c
mov dword [esp + 0xc], ecx
lea ecx, [esp + 0xb0]
mov dword [ecx], eax
mov edx, ecx
lea ecx, [esp + 0x464]
push 0x9ff01c
call fcn.0057917a
pop eax
lea eax, [esp + 0xb0]
mov edx, dword [esp + 0x14]
mov ecx, 0
mov dword [eax], str.Connection::poll__IO_error
mov dword [eax + 4], 1
and dword [eax + 0x10], 0
mov dword [eax + 8], str.dest_is_out_of_bounds
and dword [eax + 0xc], 0
mov eax, dword [esp + 0x28]
cmp edx, eax
jae 0x59fd10
mov dword [esp + 0x2dc], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x2e0], eax
mov dword [esp + 0x2e4], ecx
mov ecx, dword [esp + 0x1a4]
mov dword [esp + 0x2e8], edx
lea eax, [esp + 0x2d8]
lea edx, [esp + 0x2d8]
mov dword [eax], ecx
lea ecx, [esp + 0x208]
push 0x9ff01c
call fcn.0057917a
pop eax
lea eax, [esp + 0x1b8]
lea ecx, [esp + 0x2d8]
lea edx, [esp + 0x38]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x464]
mov dword [ecx], eax
lea eax, [esp + 0xb0]
mov dword [ecx + 4], eax
lea eax, [esp + 0x208]
mov dword [ecx + 8], 0x9fd8ec
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], edx
lea edx, [esp + 0x70]
mov dword [ecx + 0x14], 0x9ff050
mov dword [edx], ecx
mov ecx, dword [esp + 0xc]
mov dword [edx + 4], 2
mov dword [edx + 8], ecx
mov ecx, dword [0xa70024]
call fcn.00606f01
mov al, byte [esp + 0x1b8]
mov byte [esp + 0xc], al
test ebx, ebx
je 0x59fdb6
lea ecx, [esp + 0x2d8]
mov edx, ebx
push esi
call fcn.0043b820
pop eax
jmp 0x59fdbe
and dword [esp + 0x2d8], 0
mov al, byte [esp + 0xc]
movsd xmm0, qword [esp + 0x2d8]
lea ecx, [esp + 0xb4]
mov edx, dword [esp + 0x20]
mov byte [esp + 0xb1], al
mov eax, dword [esp + 0x2e0]
movsd qword [ecx], xmm0
mov dword [ecx + 8], eax
mov al, 2
mov ecx, edi
mov byte [esp + 0xb0], al
lea eax, [esp + 0xb0]
push eax
call fcn.005a42a8
pop eax
mov eax, dword [esp + 0x58]
mov cl, byte [esp + 0xc]
mov edi, dword [esp + 8]
movsd xmm0, qword [esp + 0x98]
mov dl, 2
mov byte [eax + 1], cl
mov dword [eax + 4], ebx
mov dword [eax + 8], edi
mov dword [eax + 0xc], esi
movsd qword [eax + 0x10], xmm0
mov byte [eax], dl
jmp 0x59fc30
push 0x2b
pop edx
mov ecx, 0xa3a547
push 0x9ff418
call fcn.0063cd70
pop eax
ud2