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

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
mov esi, ecx
push edi
xor edi, edi
mov ax, word [esi + 0xb4]
cmp word [esi + 0x5e], di
mov dword [esp + 0x24], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edi
mov word [esi + 0x58], ax
mov word [esi + 0x56], di
mov word [esi + 0x5a], di
mov word [esi + 0x5c], di
jne 0x3f24a74e
mov ebp, dword [esp + 0x30]
push edi
push ebp
call fcn.3f2203e0
mov dword [esp + 0x1c], eax
mov word [esi + 0x3c], di
movzx eax, ax
mov dword [esp + 0x10], eax
mov ebx, 0xff1
cmp dword [esp + 0x10], edi
je 0x3f24a6f2
movzx eax, word [esp + 0x10]
mov ecx, dword [esi + 0x242e8]
mov eax, dword [ecx + eax*4]
mov ecx, esi
mov ebp, eax
and eax, 0xffff
sar ebp, 0x10
movsx edi, bp
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0x242e4]
shl edi, 7
mov ax, word [edi + eax + 2]
push eax
push ebp
push 0x101a
call fcn.3f10152e
mov eax, dword [esi + 0x242e4]
add eax, edi
mov cx, word [eax + 0x22]
test cx, cx
jne 0x3f24a63d
cmp word [eax + 0x20], cx
jne 0x3f24a62d
cmp word [eax + 0x24], cx
jne 0x3f24a62d
mov ax, word [esi + 0x3c]
test bp, bp
je 0x3f24a621
push eax
push ebp
mov ecx, esi
call fcn.3f101268
mov ebp, dword [esp + 0x30]
mov word [esi + 0x3c], ax
xor edi, edi
jmp 0x3f24a5ad
test cx, cx
jne 0x3f24a63d
mov ax, word [eax + 0x20]
mov word [esp + 0x20], ax
jmp 0x3f24a667
push 0
push ecx
mov ecx, esi
call fcn.3f101268
push eax
mov eax, dword [esi + 0x242e4]
mov ecx, esi
mov ax, word [eax + edi + 0x20]
push eax
call fcn.3f1035f0
push eax
mov ecx, esi
call fcn.3f101940
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x242e4]
mov ecx, esi
mov ax, word [edi + eax + 0x24]
push eax
call fcn.3f1035f0
push eax
mov ecx, esi
push dword [esp + 0x24]
call fcn.3f1035f0
push eax
mov ecx, esi
call fcn.3f101940
push eax
push ebp
push ebx
mov ecx, esi
call fcn.3f10152e
mov eax, dword [esi + 0x242e4]
mov ecx, esi
mov ax, word [edi + eax + 0x38]
push eax
push ebp
push 0xff7
call fcn.3f10152e
push ebp
push 0xfd8
mov ecx, esi
call fcn.3f1014d3
push eax
push ebp
push 0xfe8
mov ecx, esi
call fcn.3f10152e
push ebp
push 0xfe2
mov ecx, esi
call fcn.3f1014d3
push eax
push ebp
push 0xff8
mov ecx, esi
call fcn.3f10152e
mov ebp, dword [esp + 0x30]
xor edi, edi
jmp 0x3f24a5ad
movzx eax, word [esi + 4]
mov ecx, dword [esi + 0x242e8]
mov eax, dword [ecx + eax*4]
mov ecx, esi
sar eax, 0x10
push eax
push ebx
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e8]
movzx eax, ax
mov edi, dword [ecx + eax*4]
mov ecx, esi
sar edi, 0x10
push edi
push 0x12ff
call fcn.3f1014ed
test ax, ax
jne 0x3f24a758
cmp word [esi + 0x7b0], 0
jne 0x3f24a790
cmp word [esi + 0x7ae], 0
jne 0x3f24a7d3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 4
mov eax, dword [esi + 0x242e4]
push edi
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.3f1129b5
mov ecx, dword [esp + 0x10]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx + 0x1a], 0x173a
jne 0x3f24a72c
movsx eax, di
shl eax, 7
mov ax, word [ecx + eax + 0xe]
inc ax
mov word [esi + 0x66], ax
jmp 0x3f24a72c
movzx edi, word [esi + 0x3c]
test edi, edi
je 0x3f24a736
mov ecx, dword [esi + 0x242e8]
push 0x3f2204f0
movzx eax, di
push 0
mov eax, dword [ecx + eax*4]
mov ecx, eax
and eax, 0xffff
sar ecx, 0x10
push ecx
mov ecx, esi
mov edi, eax
call fcn.3f101268
push eax
push 0x16fc
push 0x16f8
mov ecx, esi
call fcn.3f220264
jmp 0x3f24a794
push dword [esp + 0x1c]
mov ecx, esi
call fcn.3f10154a
movsx edi, bp
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x242e4]
shl edi, 7
add eax, edi
cmp word [eax + 2], 0x1808
je 0x3f24a82b
mov eax, dword [esi + 0x242e4]
add eax, edi
cmp word [eax], 0x13b7
jne 0x3f24a821
mov ax, word [eax + 2]
push 0xec2
push eax
mov ecx, esi
call fcn.3f1056d0
test ax, ax
je 0x3f24abf5
movzx eax, word [esp + 0x1c]
jmp 0x3f24ac05
movzx ecx, word [eax + 0x20]
mov edx, dword [esi + 0x242e8]
push 0
mov cx, word [edx + ecx*4]
mov word [eax + 0x24], cx
mov eax, dword [esi + 0x242e4]
mov ecx, dword [esi + 0x242e8]
movzx eax, word [eax + edi + 0x20]
mov eax, dword [ecx + eax*4]
mov ecx, esi
sar eax, 0x10
push eax
call fcn.3f101268
mov ecx, dword [esi + 0x242e4]
mov word [edi + ecx + 0x20], ax
mov eax, dword [esi + 0x242e4]
mov ecx, esi
mov ax, word [edi + eax + 0x24]
push eax
call fcn.3f1035f0
push eax
mov eax, dword [esi + 0x242e4]
mov ecx, esi
mov ax, word [eax + edi + 0x20]
push eax
call fcn.3f1035f0
push eax
mov ecx, esi
call fcn.3f101940
push eax
push ebp
push ebx
mov ecx, esi
call fcn.3f10152e
push 0x3f257653
push ebp
push ebx
mov ecx, esi
mov dword [esp + 0x24], 1
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f1200c4
test ax, ax
jne 0x3f24aa6c
push 0x3f25767b
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f1200c4
test ax, ax
jne 0x3f24aad1
push 0x3f2576d0
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f109c84
test ax, ax
jne 0x3f24ab5f
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f101983
cmp ax, 3
jne 0x3f24a7f8
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e8]
movzx eax, ax
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 0x242e4]
sar eax, 0x10
shl eax, 7
cmp word [eax + ecx + 2], 0x139f
jne 0x3f24a7f8
mov eax, dword [esi + 0x242e8]
push ebp
push ebx
mov ecx, esi
mov dword [esp + 0x28], eax
call fcn.3f1014d3
movzx ecx, ax
nop
mov eax, dword [esp + 0x20]
movzx ecx, word [eax + ecx*4]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esi + 0x242e4]
sar eax, 0x10
shl eax, 7
cmp word [eax + ecx + 0x1a], 0x17a9
jne 0x3f24a7f8
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f105687
mov ecx, dword [esi + 0x242e4]
shl eax, 7
cmp word [eax + ecx + 2], 0x13aa
jne 0x3f24a7f8
push dword [esp + 0x30]
mov ecx, esi
push ebx
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e8]
push dword [esp + 0x30]
movzx eax, ax
mov ebp, ecx
push ebx
mov ax, word [ecx + eax*4]
mov ecx, esi
mov word [esp + 0x28], ax
call fcn.3f1014d3
movzx eax, ax
movzx edx, word [esp + 0x20]
mov cx, word [ebp + eax*4]
mov eax, dword [esi + 0x242e4]
mov edx, dword [ebp + edx*4]
movzx ecx, cx
sar edx, 0x10
mov ecx, dword [ebp + ecx*4]
sar ecx, 0x10
shl ecx, 7
shl edx, 7
movsx ecx, word [ecx + eax + 0xc]
movsx eax, word [eax + edx + 0xe]
sub eax, ecx
cmp eax, 1
jne 0x3f24a7f8
push dword [esp + 0x30]
mov ebp, dword [esi + 0x242e8]
mov ecx, esi
push ebx
call fcn.3f1014d3
movzx eax, ax
mov ecx, esi
movzx eax, word [ebp + eax*4]
mov eax, dword [ebp + eax*4]
sar eax, 0x10
push eax
call fcn.3f112c15
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx + 0x1a], 0x17a7
jne 0x3f24a7f8
mov dword [esp + 0x14], 1
jmp 0x3f24a7f8
movzx eax, word [esi + 0x24]
mov ecx, dword [esi + 0x242e8]
push 0x3f25814c
push ebp
push ebx
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 0x242e4]
sar eax, 0x10
shl eax, 7
mov ax, word [eax + ecx + 0xc]
mov ecx, esi
mov word [esi + 0xbe], ax
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f1200c4
push eax
mov ecx, esi
call fcn.3f101983
cmp ax, 1
je 0x3f24aa5f
mov ax, word [esi + 0x24]
push 0x3f25817f
push eax
mov ecx, esi
call fcn.3f109c84
test ax, ax
je 0x3f24a7f8
jmp 0x3f24aa5f
movzx eax, word [esi + 0x24]
mov ecx, dword [esi + 0x242e8]
push 0x3f25814c
push ebp
push ebx
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 0x242e4]
sar eax, 0x10
shl eax, 7
mov ax, word [ecx + eax + 0xe]
mov ecx, esi
mov word [esi + 0xbe], ax
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f1200c4
push eax
mov ecx, esi
call fcn.3f101983
cmp ax, 1
je 0x3f24aa5f
mov ax, word [esi + 0x24]
push 0x3f25817f
push eax
mov ecx, esi
call fcn.3f109c84
test ax, ax
jne 0x3f24aa5f
push 0x3f2581aa
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f1200c4
push eax
mov ecx, esi
call fcn.3f101983
cmp ax, 1
jmp 0x3f24aa59
push 0x3f2585c8
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f1200c4
push eax
mov ecx, esi
call fcn.3f101983
cmp ax, 1
jle 0x3f24aba7
movzx eax, word [esi + 0x24]
mov ecx, dword [esi + 0x242e8]
push 0x3f2585e8
mov ax, word [ecx + eax*4]
mov ecx, esi
push eax
call fcn.3f109c84
test ax, ax
je 0x3f24a907
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f101983
cmp ax, 2
jne 0x3f24aa5f
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e8]
movzx eax, ax
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 0x242e4]
sar eax, 0x10
shl eax, 7
cmp word [eax + ecx + 2], 0x139f
jne 0x3f24aa5f
jmp 0x3f24a907
push 1
pop eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
jmp 0x3f24a821
test eax, eax
je 0x3f24ade1
mov ecx, dword [esi + 0x242e8]
movzx eax, ax
mov eax, dword [ecx + eax*4]
mov ecx, eax
and eax, 0xffff
sar ecx, 0x10
mov dword [esp + 0x20], ecx
push ecx
push 0xfec
mov ecx, esi
mov dword [esp + 0x30], eax
call fcn.3f1014d3
movzx eax, ax
mov dword [esp + 0x10], eax
cmp dword [esp + 0x10], 0
jne 0x3f24ac58
cmp word [esp + 0x14], 2
je 0x3f24ade1
mov eax, dword [esp + 0x28]
jmp 0x3f24ac05
movzx eax, word [esp + 0x10]
mov ecx, dword [esi + 0x242e8]
mov eax, dword [ecx + eax*4]
mov ecx, esi
mov ebx, eax
and eax, 0xffff
sar ebx, 0x10
push ebx
push 0x1029
mov dword [esp + 0x18], eax
call fcn.3f1014d3
cmp ax, 0x17f9
jne 0x3f24ac3f
xor ecx, ecx
cmp word [esi + 0x796], cx
jne 0x3f3966ac
cmp word [esi + 0x78e], cx
jne 0x3f3966ac
cmp word [esi + 0x78c], cx
jne 0x3f3966ac
mov eax, dword [esi + 0x242e4]
add eax, edi
cmp word [eax + 2], 0x1808
je 0x3f24ad4a
cmp word [esp + 0x18], cx
jne 0x3f3966bb
push ebx
push 0x103e
mov ecx, esi
call fcn.3f1014d3
push dword [esp + 0x30]
mov ecx, esi
mov bp, ax
call fcn.3f112a9d
cmp bp, ax
je 0x3f3967a2
push ebx
push 0x103e
mov ecx, esi
call fcn.3f1014d3
push dword [esp + 0x30]
mov ecx, esi
mov bp, ax
call fcn.3f112c15
cmp bp, ax
je 0x3f3967e8
mov ebp, dword [esp + 0x20]
mov ecx, dword [esi + 0x242e4]
movsx eax, bp
shl eax, 7
add eax, ecx
cmp word [eax + 0x1a], 0x1bb6
je 0x3f39682e
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 2
jmp 0x3f24ac46
cmp word [esp + 0x14], 1
je 0x3f24accf
push dword [esp + 0x30]
mov ebp, 0xff1
mov ecx, esi
push ebp
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f101983
cmp ax, 2
je 0x3f3966cb
push 0x1184
push ebx
push 0x103e
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
mov ax, word [ecx + eax + 0x1a]
mov ecx, esi
push eax
call fcn.3f1056d0
test ax, ax
jne 0x3f24accf
push dword [esp + 0x20]
mov ebp, 0xfec
mov ecx, esi
push ebp
call fcn.3f1014d3
push eax
push ebx
mov ecx, esi
call fcn.3f11d0ae
push eax
mov ecx, esi
push dword [esp + 0x24]
push ebp
call fcn.3f10152e
mov dword [esp + 0x14], 3
jmp 0x3f24ac3f
xor ebp, ebp
cmp word [esi + 0x58], bp
je 0x3f24ae16
cmp word [esi + 0x78c], bp
jne 0x3f3968b9
cmp word [esi + 0x78e], bp
jne 0x3f3968b9
movzx eax, word [esp + 0x1c]
mov dword [esp + 0x20], eax
mov ebx, 0x3f2204f0
jmp 0x3f24aeea
cmp word [esp + 0x14], bp
jne 0x3f24ade9
mov eax, dword [esi + 0x242e4]
mov ecx, esi
mov ax, word [edi + eax + 0xe]
dec ax
push eax
call fcn.3f23dbfa
mov ecx, dword [esi + 0x242e4]
movsx edx, ax
shl edx, 7
mov dx, word [edx + ecx + 0x1a]
cmp dx, 0x1732
je 0x3f24aed4
cmp dx, 0x1736
je 0x3f24aed4
cmp word [esp + 0x18], bp
jne 0x3f24ade9
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
mov ax, word [ecx + eax + 0x1a]
cmp ax, 0x173b
je 0x3f24aec7
cmp ax, 0x173a
je 0x3f24aec7
mov ax, word [esi + 0x3c]
push 0x3f25e54a
push eax
mov ecx, esi
call fcn.3f105648
test ax, ax
je 0x3f24ade9
mov ax, word [esi + 0x3c]
push 0x3f25e642
push eax
mov ecx, esi
call fcn.3f105648
test ax, ax
jne 0x3f24ade9
mov ax, word [esi + 0x3c]
push 0x3f25e70a
push eax
mov ecx, esi
call fcn.3f109c84
test ax, ax
jne 0x3f24ade9
mov dword [esp + 0x14], 1
jmp 0x3f24ade9
mov ax, word [edi + ecx + 0xe]
mov ecx, esi
sub ax, 2
push eax
call fcn.3f23dbfa
jmp 0x3f24ae55
xor ebp, ebp
cmp dword [esp + 0x20], ebp
je 0x3f24bc8a
movzx eax, word [esp + 0x20]
mov ecx, dword [esi + 0x242e8]
mov eax, dword [ecx + eax*4]
mov ebp, eax
and eax, 0xffff
sar ebp, 0x10
movsx edi, bp
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x242e4]
shl edi, 7
mov word [esi + 0x34], bp
cmp word [edi + eax + 0x22], 0
jne 0x3f24af62
cmp word [esp + 0x14], 2
jge 0x3f24bc41
xor ecx, ecx
cmp word [esi + 0x58], cx
je 0x3f24af9a
mov eax, dword [esi + 0x242e4]
add eax, edi
cmp word [eax + 0x22], cx
jne 0x3f24afa7
cmp word [eax + 0x20], cx
jne 0x3f24afa7
cmp word [eax + 0x24], cx
jne 0x3f24afa7
push ebp
mov ecx, esi
call fcn.3f24d340
jmp 0x3f24aeea
push 0x3f2602ab
push ebp
push 0xfec
mov ecx, esi
mov word [esi + 0x34], bp
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f1200c4
test ax, ax
jne 0x3f3968c8
push 0
push ebp
push 0xfec
mov ecx, esi
call fcn.3f10152e
jmp 0x3f24af2a
cmp word [esp + 0x14], cx
je 0x3f24bc41
jmp 0x3f24af3e
cmp word [esp + 0x18], 1
je 0x3f24b1c1
mov eax, dword [esi + 0x242e4]
cmp word [edi + eax + 2], 0x1808
je 0x3f24bc41
cmp word [esp + 0x18], 0
jne 0x3f24b22d
cmp word [esp + 0x24], 0
jne 0x3f24b0cc
push ebp
push 0xfc7
mov ecx, esi
call fcn.3f1014d3
test ax, ax
jne 0x3f24b36f
mov eax, dword [esi + 0x242e4]
movsx edx, word [eax + edi + 0x30]
lea ecx, [eax + edi]
shl edx, 7
cmp word [edx + eax + 0x1a], 0x17d0
je 0x3f24b36f
mov ax, word [ecx + 0x1a]
push 0x118d
push eax
mov ecx, esi
call fcn.3f1056d0
test ax, ax
jne 0x3f24b36f
mov eax, dword [esi + 0x242e4]
cmp word [edi + eax + 0x28], 0
jne 0x3f24b36f
push ebp
push 0x11d3
mov ecx, esi
call fcn.3f1014ed
test ax, ax
jne 0x3f24b36f
push ebp
push 0x11d2
mov ecx, esi
call fcn.3f1014ed
test ax, ax
jne 0x3f24b36f
mov eax, dword [esi + 0x242e4]
add eax, edi
cmp word [eax + 0x1a], 0x17d0
je 0x3f24b36f
test byte [eax + 0x6e], 2
jne 0x3f24b36f
test byte [eax + 0x79], 0xc
jne 0x3f24b23e
mov eax, dword [esi + 0x242e4]
add eax, edi
test byte [eax + 0x6c], 2
jne 0x3f24b36f
test byte [eax + 0x6d], 4
jne 0x3f24b28f
mov eax, dword [esi + 0x242e4]
movsx edx, word [edi + eax + 0x22]
lea ecx, [eax + edi]
shl edx, 7
cmp word [edx + eax + 2], 0x13b3
je 0x3f24b355
push ebx
push 0
push ebp
mov ecx, esi
call fcn.3f101268
push eax
push 0x16f7
push 0x16f5
mov ecx, esi
call fcn.3f220264
push ebx
push 0
push ebp
mov ecx, esi
call fcn.3f101268
push eax
push 0x1666
push 0x1657
mov ecx, esi
call fcn.3f220264
mov eax, dword [esi + 0x242e4]
movsx edx, word [edi + eax + 0x22]
lea ecx, [eax + edi]
shl edx, 7
cmp word [edx + eax + 2], 0x13b4
je 0x3f24b37c
mov eax, dword [esi + 0x242e4]
push 0x1192
mov ecx, esi
mov ax, word [edi + eax + 2]
push eax
call fcn.3f1056d0
test ax, ax
jne 0x3f24b437
mov eax, dword [esi + 0x242e4]
add eax, edi
cmp word [eax + 2], 0x13a5
je 0x3f24b42c
mov ecx, dword [esi + 0x242e4]
movsx edx, word [ecx + edi + 0x22]
lea eax, [ecx + edi]
shl edx, 7
mov cx, word [edx + ecx + 2]
cmp cx, 0x13b3
je 0x3f24b627
cmp cx, 0x13a8
jne 0x3f24bc41
cmp word [esi + 0x78a], 0
je 0x3f24b19a
cmp word [eax + 0x28], 0
jne 0x3f24bba3
mov ebx, 0x3f2204f0
mov ecx, esi
push ebx
push 0
push ebp
call fcn.3f101268
push eax
push 0x1656
push 0x1651
mov ecx, esi
call fcn.3f220264
jmp 0x3f24bc41
mov cx, word [eax + 2]
cmp cx, 0x1808
je 0x3f24b215
cmp word [eax], 0x13b7
je 0x3f24b201
cmp word [esp + 0x14], 1
je 0x3f24afb3
push ebx
push 0
push ebp
mov ecx, esi
call fcn.3f101268
push eax
push 0x16f7
push 0x16f5
mov ecx, esi
call fcn.3f220264
jmp 0x3f24afb3
push 0xec2
push ecx
mov ecx, esi
call fcn.3f1056d0
test ax, ax
je 0x3f24b215
jmp 0x3f24b1d3
push ebx
push 0
push ebp
mov ecx, esi
call fcn.3f101268
push eax
push 0x166a
push 0x1667
jmp 0x3f24b1f5
cmp word [esp + 0x14], 1
jne 0x3f24bc41
jmp 0x3f24afd2
push dword [esp + 0x30]
mov ecx, esi
push 0xfd8
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx + 2], 0x13a0
jne 0x3f24b092
push ebp
push 0xfd8
mov ecx, esi
call fcn.3f1014d3
push eax
push 0xfe4
mov ecx, esi
call fcn.3f1014d3
test ax, ax
jne 0x3f24b36f
jmp 0x3f24b092
push ebp
push 0x11df
mov ecx, esi
call fcn.3f1014ed
test ax, ax
jne 0x3f24b2d7
mov eax, dword [esi + 0x242e4]
test byte [edi + eax + 0x6b], 0x80
jne 0x3f24b2d7
push ebp
push 0x11c0
mov ecx, esi
call fcn.3f1014ed
test ax, ax
jne 0x3f24b2d7
mov eax, dword [esi + 0x242e4]
add eax, edi
test byte [eax + 0x6c], 2
je 0x3f24b0ae
jmp 0x3f3968d2
mov eax, dword [esi + 0x242e4]
movsx edx, word [edi + eax + 0x22]
lea ecx, [eax + edi]
shl edx, 7
cmp word [edx + eax + 2], 0x13af
je 0x3f24b0ae
cmp word [ecx + 0xc], 1
jle 0x3f24b0ae
movzx eax, word [esi + 4]
mov ecx, dword [esi + 0x242e8]
mov eax, dword [ecx + eax*4]
mov ecx, esi
sar eax, 0x10
push eax
call fcn.3f112a9d
cmp bp, ax
je 0x3f24b0ae
mov eax, dword [esi + 0x242e4]
mov ax, word [eax + edi + 0xc]
cmp ax, 3
jg 0x3f24b36f
dec eax
mov ecx, esi
push eax
call fcn.3f23dbfa
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx + 2], 0x13aa
jne 0x3f24b36f
jmp 0x3f24b0ae
mov ax, word [ecx + 0x1a]
push 0x819
push eax
mov ecx, esi
call fcn.3f1056d0
test ax, ax
je 0x3f24b0cc
mov dword [esp + 0x24], 1
jmp 0x3f24b0cc
cmp word [esi + 0x78a], 0
je 0x3f24b38c
test byte [ecx + 0x6f], 0x10
jne 0x3f24b3ae
push ebx
push 0
push ebp
mov ecx, esi
call fcn.3f101268
push eax
push 0x1650
push 0x1649
mov ecx, esi
call fcn.3f220264
jmp 0x3f24b124
cmp word [ecx + 2], 0x1804
je 0x3f24b40a
mov eax, dword [esi + 0x242e4]
push 0x3f24f63c
mov ecx, esi
mov ax, word [edi + eax + 0x3e]
push eax
call fcn.3f105648
test ax, ax
je 0x3f24b38c
mov eax, dword [esi + 0x242e4]
push 0x3f2681c7
mov ecx, esi
mov ax, word [edi + eax + 0x3e]
push eax
call fcn.3f1200c4
test ax, ax
je 0x3f24b38c
movzx eax, word [esi + 0x24]
mov ecx, dword [esi + 0x242e8]
mov eax, dword [ecx + eax*4]
mov ecx, esi
sar eax, 0x10
push eax
call fcn.3f23dd35
jmp 0x3f24b38c
movzx eax, word [ecx + 0x3e]
mov ecx, dword [esi + 0x242e8]
push 0x3f254629
mov ax, word [ecx + eax*4]
mov ecx, esi
push eax
call fcn.3f1200c4
test ax, ax
jne 0x3f24b3f0
jmp 0x3f24b3b6
cmp word [eax + 0x2e], 0
jne 0x3f24b159
cmp word [esi + 0x78a], 0
je 0x3f24b500
mov ebx, 0xfdb
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
test ax, ax
jne 0x3f24b527
mov ecx, dword [esi + 0x242e4]
cmp word [ecx + edi + 0x1a], 0x176e
lea eax, [ecx + edi]
je 0x3f24b577
cmp word [eax + 2], 0x13a5
je 0x3f24b58c
mov eax, dword [esi + 0x242e4]
movsx edx, word [eax + edi + 0x30]
lea ecx, [eax + edi]
shl edx, 7
cmp word [edx + eax + 0x1a], 0x17d6
je 0x3f24b5e2
test byte [ecx + 0x6c], 8
jne 0x3f24b5cc
mov ecx, dword [esi + 0x242e4]
cmp word [ecx + edi + 0x1a], 0x1782
lea eax, [ecx + edi]
je 0x3f24b5fe
mov ecx, dword [esi + 0x242e4]
cmp word [ecx + edi + 0x1a], 0x17c1
lea eax, [ecx + edi]
je 0x3f24b60d
mov ax, word [eax + 0x1a]
push 0x1199
push eax
mov ecx, esi
call fcn.3f1056d0
test ax, ax
jne 0x3f24b5bf
mov eax, dword [esi + 0x242e4]
add eax, edi
cmp word [eax + 0x1a], 0x17a7
je 0x3f396998
mov ebx, 0x3f2204f0
mov ecx, esi
push ebx
push 0
push ebp
call fcn.3f101268
push eax
push 0x1627
push 0x1616
mov ecx, esi
call fcn.3f220264
jmp 0x3f24b159
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
push eax
push 0xfd3
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx + 0x1a], 0x1768
je 0x3f24b45c
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
test byte [eax + ecx + 0x70], 0x40
je 0x3f24b5bf
jmp 0x3f24b45c
movsx edx, word [eax + 0x22]
shl edx, 7
cmp word [edx + ecx + 2], 0x13ad
je 0x3f24b5bf
jmp 0x3f24b472
cmp word [eax + 0x30], 0
jne 0x3f24b47e
mov ax, word [eax + 0x64]
movsx edx, ax
nop
shl edx, 7
cmp bp, word [edx + ecx + 0x38]
je 0x3f24b5bf
push eax
push 0xfd8
mov ecx, esi
call fcn.3f1014d3
cmp bp, ax
jne 0x3f24b47e
push ebp
mov ecx, esi
call fcn.3f23dd35
jmp 0x3f24b500
push ebp
push 0x11bc
mov ecx, esi
call fcn.3f1014ed
test ax, ax
je 0x3f24b4a6
push 0x3f23de0f
push 0x3f25876f
push ebp
mov ecx, esi
call fcn.3f220713
test ax, ax
je 0x3f24b5bf
jmp 0x3f24b4a6
test byte [eax + 0x6d], 0x10
jne 0x3f24b4bc
jmp 0x3f3968e1
test byte [eax + 0x6d], 0x10
jne 0x3f24b4d2
cmp word [eax + 0x20], 0
jne 0x3f24b4d2
jmp 0x3f396930
cmp word [esi + 0x78a], 0
mov word [esi + 0x34], bp
je 0x3f24b7cf
mov ax, word [eax + 2]
push 0x119c
push eax
mov ecx, esi
call fcn.3f1056d0
test ax, ax
jne 0x3f24b751
mov ebx, dword [esi + 0x242e4]
cmp word [ebx + edi + 0x2c], ax
jne 0x3f24b751
cmp word [ebx + edi + 2], 0x190b
je 0x3f24b7ef
movsx eax, word [ebx + edi + 0x22]
shl eax, 7
push 0x3f24ea06
push 0xffffffffffffffff
mov ax, word [eax + ebx + 0xc]
mov ecx, esi
push eax
push 0x13b3
call fcn.3f23db3c
test ax, ax
jne 0x3f24b751
mov eax, dword [esi + 0x242e4]
movsx edx, word [edi + eax + 0x22]
lea ecx, [eax + edi]
shl edx, 7
mov al, byte [edx + eax + 0x6c]
test al, 0x40
jne 0x3f24b751
test al, 0x10
jne 0x3f24b814
mov ax, word [ecx + 0x24]
push 0x3f24eb9e
push eax
mov ecx, esi
call fcn.3f105648
test ax, ax
jne 0x3f24b751
mov eax, dword [esi + 0x242e4]
test byte [edi + eax + 0x74], 0x20
jne 0x3f24b751
push ebp
push 0xfd8
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx + 2], 0x13a0
je 0x3f24b824
push ebp
push 0x1021
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx + 2], 0x13a0
je 0x3f24b824
mov eax, dword [esi + 0x242e4]
test byte [edi + eax + 0x78], 0x20
je 0x3f24b859
push ebp
mov ecx, esi
call fcn.3f24ecbd
test ax, ax
je 0x3f24b8b7
mov eax, dword [esi + 0x242e4]
mov word [esi + 0x34], bp
add eax, edi
test byte [eax + 0x73], 8
jne 0x3f24b9d4
mov eax, dword [esi + 0x242e4]
mov cl, byte [eax + edi + 0x6d]
test cl, 4
jne 0x3f24ba14
mov ebx, dword [esi + 0x242e4]
cmp word [ebx + edi + 2], 0x1806
je 0x3f24bad5
cmp word [ebx + edi + 2], 0x13a2
je 0x3f24baf4
mov eax, dword [esi + 0x242e4]
add eax, edi
cmp word [eax + 2], 0x190b
je 0x3f24bb2e
mov eax, dword [esi + 0x242e4]
add eax, edi
mov cx, word [eax + 0x24]
mov ax, word [eax + 0x38]
push ecx
push eax
mov ecx, esi
call fcn.3f1011e8
test eax, eax
jne 0x3f24bb72
mov ebx, 0x3f2204f0
mov ecx, esi
push ebx
push 0
push ebp
call fcn.3f101268
push eax
push 0x1648
push 0x162b
jmp 0x3f24b1b5
push ebp
push 0x1021
mov ecx, esi
call fcn.3f1014d3
movsx eax, ax
shl eax, 7
cmp word [eax + ebx + 2], 0x13a4
jne 0x3f24b751
jmp 0x3f24b671
cmp word [ecx + 0x24], 0
je 0x3f24b751
jmp 0x3f24b6c0
push ebp
push 0x101b
mov ecx, esi
call fcn.3f1014d3
test ax, ax
jne 0x3f24b72f
mov eax, dword [esi + 0x242e4]
mov al, byte [edi + eax + 0x78]
test al, 0x20
je 0x3f24b72f
test al, 0x80
je 0x3f24b751
jmp 0x3f24b72f
push ebp
push 0x2b
mov ecx, esi
call fcn.3f101c26
test ax, ax
jne 0x3f24b740
mov eax, dword [esi + 0x242e4]
test byte [edi + eax + 0x78], 0x80
je 0x3f24b740
movzx eax, word [esi + 4]
mov ecx, dword [esi + 0x242e8]
mov eax, dword [ecx + eax*4]
movsx ecx, bp
nop
sar eax, 0x10
cmp ecx, eax
jne 0x3f24b740
push eax
mov ecx, esi
call fcn.3f112c15
mov ecx, dword [esi + 0x242e4]
cmp word [edi + ecx + 0x22], ax
je 0x3f24b751
jmp 0x3f24b740
push 0
mov ecx, esi
call fcn.3f103667
mov edx, dword [esi + 0x242e4]
movsx ecx, ax
movsx ebx, word [edx + edi + 0x22]
shl ebx, 7
shl ecx, 7
mov bx, word [ebx + edx + 0xc]
mov word [ecx + edx + 0xc], bx
mov edx, dword [esi + 0x242e4]
movsx ebx, word [edx + edi + 0x22]
shl ebx, 7
mov bx, word [ebx + edx + 0xe]
mov word [ecx + edx + 0xe], bx
mov word [esi + 0x2a8f8], ax
mov word [esi + 0x34], ax
mov eax, dword [esi + 0x242e4]
movsx ecx, word [eax + edi + 0x22]
lea ebx, [eax + edi]
shl ecx, 7
movsx ecx, word [ecx + eax + 0x1e]
shl ecx, 7
cmp word [ecx + eax + 0x46], 0
jne 0x3f24b939
mov eax, dword [esi + 0x242e4]
cmp word [eax + edi + 0x24], 0
je 0x3f24b99f
mov ax, word [esi + 0x34]
jmp 0x3f24bb9d
movsx ecx, word [eax + edi + 0x1e]
shl ecx, 7
mov dword [esp + 0x10], eax
mov ax, word [ecx + eax + 0x46]
mov ecx, esi
push eax
push 0x101d
call fcn.3f1014d3
mov ecx, dword [esp + 0x10]
mov dx, ax
movsx eax, word [ebx + 0x1e]
shl eax, 7
mov word [esp + 0x10], dx
mov ax, word [eax + ecx + 0x48]
mov ecx, esi
push eax
push 0x101d
call fcn.3f1014d3
mov cx, word [esp + 0x10]
cmp ax, cx
jg 0x3f24b922
mov eax, dword [esi + 0x242e4]
movsx ecx, word [eax + edi + 0x22]
shl ecx, 7
or byte [ecx + eax + 0x73], 0x20
lea eax, [ecx + eax + 0x73]
jmp 0x3f24b922
movsx ecx, word [eax + edi + 0x22]
shl ecx, 7
mov ax, word [ecx + eax + 0xe]
mov ecx, esi
inc ax
push eax
call fcn.3f24a371
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx + 0x1a], 0x173a
je 0x3f24b7cf
jmp 0x3f24b930
mov ax, word [eax + 2]
push 0x11a0
push eax
mov ecx, esi
call fcn.3f1056d0
test ax, ax
jne 0x3f24b767
mov eax, dword [esi + 0x242e4]
push 0x3f2686b6
mov ecx, esi
mov ax, word [edi + eax + 0x42]
push eax
call fcn.3f105648
test ax, ax
jne 0x3f24bac8
jmp 0x3f24b767
test cl, 0x10
jne 0x3f24b77a
movsx ecx, word [eax + edi + 0x1e]
shl ecx, 7
mov ax, word [ecx + eax + 0x46]
mov ecx, esi
push eax
push 0x101d
call fcn.3f1014d3
test ax, ax
je 0x3f24b77a
mov eax, dword [esi + 0x242e4]
mov ecx, esi
mov ebx, eax
mov dword [esp + 0x10], eax
movsx eax, word [ebx + edi + 0x1e]
shl eax, 7
mov ax, word [eax + ebx + 0x48]
push eax
push 0x101d
call fcn.3f1014d3
push eax
push 2
mov ecx, esi
call fcn.3f1126e0
mov dx, ax
mov ecx, esi
movsx eax, word [ebx + edi + 0x1e]
shl eax, 7
mov word [esp + 0x10], dx
mov ax, word [ebx + eax + 0x46]
push eax
push 0x101d
call fcn.3f1014d3
mov cx, word [esp + 0x10]
cmp ax, cx
jle 0x3f24b77a
mov eax, dword [esi + 0x242e4]
mov ecx, esi
mov ax, word [eax + edi + 0x20]
push eax
call fcn.3f105687
mov ecx, dword [esi + 0x242e4]
shl eax, 7
cmp word [eax + ecx + 0x28], 0
je 0x3f24b77a
push ebp
mov ecx, esi
call fcn.3f23dd35
jmp 0x3f24b7cf
push ebp
push 0xff5
mov ecx, esi
call fcn.3f1014d3
movsx eax, ax
shl eax, 7
test byte [eax + ebx + 0x6f], 2
jne 0x3f24bac8
jmp 0x3f24b78d
push ebp
push 0xfd3
mov ecx, esi
call fcn.3f1014d3
test ax, ax
jne 0x3f24b79a
push 0x3f378887
push ebp
push 0xfdc
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f105648
test ax, ax
jne 0x3f24bac8
jmp 0x3f24b79a
cmp word [eax + 0x24], 0
jne 0x3f24b7ae
mov ax, word [eax + 0x20]
push 0x3f2518d2
push eax
mov ecx, esi
call fcn.3f105648
test ax, ax
jne 0x3f24b7ae
mov eax, dword [esi + 0x242e4]
movsx ecx, word [eax + edi + 0x22]
shl ecx, 7
add eax, ecx
test byte [eax + 0x70], 1
je 0x3f24b7ae
jmp 0x3f3969a7
mov eax, dword [esi + 0x242e4]
movsx edx, word [edi + eax + 0x22]
lea ecx, [eax + edi]
shl edx, 7
add eax, edx
test byte [eax + 0x70], 1
je 0x3f24b7cf
test byte [eax + 0x6e], 0x20
jne 0x3f24b7cf
mov ax, word [ecx + 0x38]
push eax
jmp 0x3f24bac9
mov ecx, dword [esi + 0x242e4]
mov ax, word [eax + 0x24]
mov dword [esp + 0x10], ecx
push eax
movsx ebx, word [ecx + edi + 0x28]
mov ecx, esi
call fcn.3f105687
cmp ebx, eax
jne 0x3f24b19a
mov eax, dword [esp + 0x10]
push 0x3f3788b4
shl ebx, 7
push 0xffffffffffffffff
movsx ecx, word [ebx + eax + 0x32]
shl ecx, 7
mov ax, word [ecx + eax + 0xe]
mov ecx, esi
inc ax
push eax
push 0xffffffffffffffff
call fcn.3f112216
test ax, ax
jne 0x3f24b19a
movzx eax, word [esi + 4]
mov ecx, dword [esi + 0x242e8]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 0x242e4]
sar eax, 0x10
shl eax, 7
cmp word [eax + ecx + 2], 0x1805
je 0x3f24b19a
push 0
push 0x3f3788f8
push ebp
mov ecx, esi
call fcn.3f2205df
test ax, ax
jne 0x3f24b19a
push ebp
mov ecx, esi
call fcn.3f23dd35
jmp 0x3f24b19a
mov eax, dword [esi + 0x242e4]
add edi, eax
test byte [edi + 0x71], 8
je 0x3f24aeea
cmp word [edi], 0x13b7
je 0x3f24bc7c
push ebx
push 0
push ebp
mov ecx, esi
call fcn.3f101268
push eax
push 0x162a
push 0x1628
mov ecx, esi
call fcn.3f220264
jmp 0x3f24aeea
cmp word [esp + 0x18], 0
jne 0x3f24aeea
jmp 0x3f24bc5a
cmp word [esp + 0x24], 1
je 0x3f24bca8
cmp word [esi + 0x796], bp
jne 0x3f24a74e
movzx edi, word [esi + 0x3c]
jmp 0x3f24c439
movzx eax, word [esp + 0x1c]
mov ecx, dword [esi + 0x242e8]
mov eax, dword [ecx + eax*4]
mov ecx, esi
sar eax, 0x10
push eax
mov word [esi + 6], bp
call fcn.3f22dff7
push dword [esp + 0x1c]
mov ecx, esi
call fcn.3f10154a
mov dword [esp + 0x1c], eax
movzx eax, ax
mov dword [esp + 0x24], eax
cmp dword [esp + 0x24], ebp
je 0x3f24bfed
movzx eax, word [esp + 0x24]
mov ecx, dword [esi + 0x242e8]
mov eax, dword [ecx + eax*4]
mov ebp, eax
and eax, 0xffff
sar ebp, 0x10
movsx edi, bp
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x242e4]
shl edi, 7
add eax, edi
mov cx, word [eax + 0x22]
test cx, cx
jne 0x3f24bd34
push ebp
push 0x101a
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e4]
xor ebp, ebp
mov word [edi + ecx + 2], ax
jmp 0x3f24bcdb
mov word [esi + 0x34], cx
and word [eax + 0x20], 0
mov eax, dword [esi + 0x242e4]
push 0x3f24f81e
push ebp
push 0xff1
and word [edi + eax + 0x24], 0
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f1200c4
mov ecx, dword [esi + 0x242e4]
push 0x3f24f87b
push ebp
push 0xff1
mov word [edi + ecx + 0x20], ax
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f1200c4
mov ecx, dword [esi + 0x242e4]
mov word [edi + ecx + 0x24], ax
mov ecx, dword [esi + 0x242e4]
mov dx, word [ecx + edi + 0x20]
lea eax, [ecx + edi]
test dx, dx
jne 0x3f24be61
movsx edx, word [eax + 0x22]
nop
shl edx, 7
mov cx, word [edx + ecx + 0xc]
mov word [eax + 0xc], cx
mov ecx, dword [esi + 0x242e4]
mov dx, word [ecx + edi + 0x24]
lea eax, [ecx + edi]
test dx, dx
jne 0x3f24be86
movsx edx, word [eax + 0x22]
shl edx, 7
mov cx, word [edx + ecx + 0xe]
mov word [eax + 0xe], cx
push ebp
push 0x1033
mov ecx, esi
call fcn.3f1014d3
test ax, ax
jne 0x3f24beac
push ebp
push 0xfed
mov ecx, esi
call fcn.3f1014d3
test ax, ax
je 0x3f24bf65
push ebp
push 0xff7
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e4]
push ebp
push 0xff8
mov word [edi + ecx + 0x38], ax
mov ecx, esi
call fcn.3f1014d3
push eax
push ebp
push 0xfe2
mov ecx, esi
call fcn.3f10152e
push ebp
push 0xfe8
mov ecx, esi
call fcn.3f1014d3
push eax
push ebp
push 0xfd8
mov ecx, esi
call fcn.3f10152e
jmp 0x3f24bd18
mov ebx, dword [esi + 0x242e8]
movzx edx, dx
mov edx, dword [ebx + edx*4]
mov ebx, 0x3f2204f0
sar edx, 0x10
shl edx, 7
mov cx, word [edx + ecx + 0xc]
mov word [eax + 0xc], cx
jmp 0x3f24bdbb
mov eax, ecx
push edx
mov ecx, esi
mov dword [esp + 0x14], eax
call fcn.3f105687
mov ecx, eax
mov eax, dword [esp + 0x10]
shl ecx, 7
mov cx, word [ecx + eax + 0xe]
mov word [eax + edi + 0xe], cx
jmp 0x3f24bde2
mov eax, dword [esi + 0x242e4]
push ebp
push 0x1033
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.3f1014d3
movsx ecx, ax
mov eax, dword [esp + 0x10]
shl ecx, 7
mov cx, word [ecx + eax + 0xc]
cmp cx, word [eax + edi + 0xc]
jge 0x3f24bf04
mov eax, dword [esi + 0x242e4]
push ebp
push 0x1033
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.3f1014d3
movsx ecx, ax
mov eax, dword [esp + 0x10]
shl ecx, 7
mov cx, word [ecx + eax + 0xc]
mov word [eax + edi + 0xc], cx
mov eax, dword [esi + 0x242e4]
push ebp
push 0x104b
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.3f1014d3
movsx ecx, ax
mov eax, dword [esp + 0x10]
shl ecx, 7
mov cx, word [ecx + eax + 0xe]
cmp cx, word [eax + edi + 0xe]
jle 0x3f24bdf8
mov eax, dword [esi + 0x242e4]
push ebp
push 0x104b
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.3f1014d3
movsx ecx, ax
mov eax, dword [esp + 0x10]
shl ecx, 7
mov cx, word [ecx + eax + 0xe]
mov word [eax + edi + 0xe], cx
jmp 0x3f24bdf8
push ebp
push 0x1024
mov ecx, esi
call fcn.3f1014d3
test ax, ax
mov dword [esp + 0x30], eax
jne 0x3f24bfd2
push dword [esp + 0x30]
mov ecx, esi
push 0xfed
call fcn.3f1014d3
push eax
push ebp
push 0xfed
mov ecx, esi
call fcn.3f10152e
push ebp
push 0xfed
mov ecx, esi
call fcn.3f1014d3
test ax, ax
je 0x3f24be0e
push ebp
push 0xfed
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
mov word [eax + ecx + 0x66], bp
jmp 0x3f24be0e
push eax
push 0xfed
mov ecx, esi
call fcn.3f1014d3
test ax, ax
jne 0x3f24bf7b
push dword [esp + 0x30]
jmp 0x3f24bf66
push dword [esp + 0x1c]
mov ecx, esi
call fcn.3f10154a
movzx eax, word [esi + 6]
mov dword [esp + 0x30], eax
xor ebp, ebp
cmp dword [esp + 0x30], ebp
je 0x3f24bc92
movzx eax, word [esp + 0x30]
mov ecx, dword [esi + 0x242e8]
mov eax, dword [ecx + eax*4]
mov ebp, eax
and eax, 0xffff
sar ebp, 0x10
movsx edi, bp
mov dword [esp + 0x30], eax
mov eax, dword [esi + 0x242e4]
shl edi, 7
mov cx, word [eax + edi + 0x66]
movsx edx, cx
shl edx, 7
movsx edx, word [edx + eax + 0x22]
shl edx, 7
cmp word [edx + eax + 2], 0x13b3
je 0x3f24c09c
push ecx
push 0xfed
mov ecx, esi
call fcn.3f1014d3
push eax
push 0x1003
mov ecx, esi
call fcn.3f1014d3
test ax, ax
jne 0x3f24c000
mov eax, dword [esi + 0x242e4]
push ebx
push 0
mov ecx, esi
mov ax, word [edi + eax + 0x66]
push eax
call fcn.3f101268
push eax
push 0x1672
push 0x166b
mov ecx, esi
call fcn.3f220264
jmp 0x3f24c000
cmp word [esi + 0x78a], 0
mov word [esi + 0x34], cx
je 0x3f24c0bc
movsx ecx, word [eax + edi + 0x66]
shl ecx, 7
add ecx, eax
cmp word [ecx + 2], 0x190b
je 0x3f24c12c
mov eax, dword [esi + 0x242e4]
mov cx, word [eax + edi + 0x66]
movsx edx, cx
shl edx, 7
test byte [edx + eax + 0x6e], 2
jne 0x3f24c308
mov eax, dword [esi + 0x242e4]
mov ecx, esi
mov ax, word [edi + eax + 0x66]
push eax
push 0xfed
call fcn.3f1014d3
push eax
push 0x1003
mov ecx, esi
call fcn.3f1014d3
test ax, ax
jne 0x3f24c000
mov eax, dword [esi + 0x242e4]
push ebx
push 0
mov ecx, esi
mov ax, word [edi + eax + 0x66]
push eax
call fcn.3f101268
push eax
push 0x1678
push 0x1673
jmp 0x3f24c090
mov cx, word [ecx + 0x64]
movsx edx, cx
shl edx, 7
movsx edx, word [edx + eax + 0x22]
shl edx, 7
cmp word [edx + eax + 2], 0x13af
jne 0x3f24c0bc
push 0x3f2532b5
push ecx
push 0xfed
mov ecx, esi
call fcn.3f1014d3
push eax
push 0xfe9
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f1200c4
push eax
mov ecx, esi
call fcn.3f101983
cmp ax, 2
jge 0x3f24c0bc
push 0x3f2518d2
push ebp
push 0xff6
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f105648
test ax, ax
jne 0x3f24c0bc
mov eax, dword [esi + 0x242e4]
push 0x3f396659
movsx ecx, word [eax + edi + 0x66]
shl ecx, 7
mov ax, word [eax + ecx + 0x64]
mov ecx, esi
push eax
push 0xfed
call fcn.3f1014d3
push eax
push 0x1052
mov ecx, esi
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f105648
test ax, ax
jne 0x3f24c0bc
mov eax, dword [esi + 0x242e4]
push ebp
push 0xff7
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.3f1014d3
movsx ecx, ax
mov eax, dword [esp + 0x10]
shl ecx, 7
movsx ecx, word [ecx + eax + 0x66]
shl ecx, 7
test byte [ecx + eax + 0x6c], 4
jne 0x3f24c0bc
mov eax, dword [esi + 0x242e4]
push ebp
push 0xff8
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.3f1014d3
movsx ecx, ax
mov eax, dword [esp + 0x10]
shl ecx, 7
movsx ecx, word [ecx + eax + 0x66]
shl ecx, 7
test byte [ecx + eax + 0x6c], 4
jne 0x3f24c0bc
mov eax, dword [esi + 0x242e4]
push ebp
push 0xfe8
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.3f1014d3
movsx ecx, ax
mov eax, dword [esp + 0x10]
shl ecx, 7
movsx ecx, word [ecx + eax + 0x66]
shl ecx, 7
test byte [ecx + eax + 0x6c], 4
jne 0x3f24c0bc
mov eax, dword [esi + 0x242e4]
push ebp
push 0x1006
mov ecx, esi
mov dword [esp + 0x18], eax
call fcn.3f1014d3
movsx ecx, ax
mov eax, dword [esp + 0x10]
shl ecx, 7
movsx ecx, word [ecx + eax + 0x66]
shl ecx, 7
test byte [ecx + eax + 0x6c], 4
jne 0x3f24c0bc
mov ax, word [esi + 0x34]
mov ecx, esi
push eax
call fcn.3f103667
mov edx, dword [esi + 0x242e4]
push eax
movsx ecx, ax
shl ecx, 7
and word [ecx + edx + 0x24], 0
mov edx, dword [esi + 0x242e4]
add ecx, edx
movsx ebp, word [ecx + 0x22]
shl ebp, 7
mov dx, word [edx + ebp + 0xe]
mov word [ecx + 0xe], dx
mov ecx, esi
mov word [esi + 0x2a8f8], ax
mov word [esi + 0x34], ax
call fcn.3f23dd35
jmp 0x3f24c0bc
push ebx
push 0
push ecx
mov ecx, esi
call fcn.3f101268
push eax
mov eax, 0x1679
push eax
push eax
mov ecx, esi
call fcn.3f220264
mov eax, dword [esi + 0x242e4]
mov ebp, 0xfec
mov ecx, esi
mov ax, word [edi + eax + 0x66]
push eax
push ebp
call fcn.3f1014d3
push eax
mov ecx, esi
call fcn.3f105687
push eax
push 0x1029
mov ecx, esi
call fcn.3f1014d3
cmp ax, 0x18bd
je 0x3f24c423
cmp word [esi + 0x56], 0
jne 0x3f24c0d8
cmp word [esi + 0x7a6], 0
jne 0x3f24c0d8
mov eax, dword [esi + 0x242e4]
mov ecx, esi
mov ax, word [edi + eax + 0x66]
push eax
push ebp
call fcn.3f1014d3
mov dword [esp + 0x20], eax
mov ax, word [esi + 0x7a6]
mov word [esp + 0x28], ax
mov eax, dword [esi + 0x242e4]
push 0
mov ecx, esi
mov ax, word [edi + eax + 0x66]
push eax
push ebp
call fcn.3f10152e
mov eax, dword [esi + 0x242e4]
mov word [esi + 0x7a6], 1
push ebx
push 0
mov ax, word [edi + eax + 0x66]
mov ecx, esi
push eax
call fcn.3f101268
push eax
mov eax, 0x1679
push eax
push eax
mov ecx, esi
call fcn.3f220264
mov eax, dword [esi + 0x242e4]
mov ecx, esi
mov ax, word [edi + eax + 0x66]
push eax
push ebp
call fcn.3f1014d3
test ax, ax
je 0x3f24c3fa
mov word [esi + 0x56], 1
mov eax, dword [esi + 0x242e4]
push dword [esp + 0x20]
mov ecx, esi
mov ax, word [edi + eax + 0x66]
push eax
push ebp
call fcn.3f10152e
mov ax, word [esp + 0x28]
mov word [esi + 0x7a6], ax
jmp 0x3f24c0d8
cmp word [esi + 0x56], 0
jne 0x3f24c0d8
mov word [esi + 0x56], 1
jmp 0x3f24c0d8
cmp edi, ebp
je 0x3f24a74e
mov ecx, dword [esi + 0x242e8]
mov edx, dword [esi + 0x242e4]
movzx eax, di
mov eax, dword [ecx + eax*4]
mov ecx, eax
and eax, 0xffff
sar ecx, 0x10
mov edi, eax
movsx eax, cx
shl eax, 7
add eax, edx
cmp word [eax + 0x22], bp
jne 0x3f24c439
cmp word [eax + 0x20], bp
jne 0x3f24c439
cmp word [eax + 0x24], bp
jne 0x3f24c439
test byte [eax + 0x75], 8
jne 0x3f24c439
push ebx
push ebp
push ecx
mov ecx, esi
call fcn.3f101268
push eax
push 0x1682
push 0x167a
mov ecx, esi
call fcn.3f220264
jmp 0x3f24c439
cmp word [esi + 0x58], cx
je 0x3f24adad
jmp 0x3f24acb0
cmp word [eax], 0x13b7
jne 0x3f24accf
jmp 0x3f24ad4a
cmp word [esi + 0x58], 0
je 0x3f3966e4
mov eax, dword [esi + 0x242e4]
cmp word [edi + eax + 0xe], 0xa
jge 0x3f24ad79
push dword [esp + 0x30]
mov ecx, esi
push ebp
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e8]
movzx eax, ax
mov eax, dword [ecx + eax*4]
mov ecx, esi
sar eax, 0x10
push eax
push 0xd
call fcn.3f101c26
test ax, ax
jne 0x3f24ad79
push dword [esp + 0x30]
mov ecx, esi
push ebp
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e8]
movzx eax, ax
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 0x242e4]
sar eax, 0x10
shl eax, 7
cmp word [eax + ecx + 2], 0x139f
je 0x3f24ad79
push dword [esp + 0x30]
mov ecx, esi
push 0xff1
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e8]
push dword [esp + 0x30]
movzx eax, ax
push 0xff1
mov ebp, dword [ecx + eax*4]
mov ecx, esi
sar ebp, 0x10
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e8]
movzx eax, ax
shl ebp, 7
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 0x242e4]
sar eax, 0x10
mov dx, word [ecx + ebp + 0xe]
shl eax, 7
cmp dx, word [eax + ecx + 0xc]
jg 0x3f24accf
jmp 0x3f24ad79
push ebx
push 0x103e
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
mov ax, word [ecx + eax + 0xe]
mov ecx, esi
inc ax
push eax
call fcn.3f24a371
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx + 0x1a], 0x173a
je 0x3f24adad
jmp 0x3f24acf3
push ebx
push 0x103e
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
mov ax, word [eax + ecx + 0xc]
mov ecx, esi
dec ax
push eax
call fcn.3f23dbfa
mov ecx, dword [esi + 0x242e4]
movsx eax, ax
shl eax, 7
cmp word [eax + ecx + 0x1a], 0x173a
jne 0x3f24ad17
jmp 0x3f24adad
mov ax, word [eax + 0x22]
test ax, ax
je 0x3f396839
mov ebp, eax
mov ebx, 0xfec
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
push 0
push ebp
push ebx
mov ecx, esi
mov dword [esp + 0x2c], eax
call fcn.3f10152e
push 0x3f2204f0
push 0
push ebp
mov ecx, esi
call fcn.3f101268
push eax
mov eax, 0x16a5
push eax
push eax
mov ecx, esi
call fcn.3f220264
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
test ax, ax
je 0x3f3968a7
push ebp
push ebx
mov ecx, esi
call fcn.3f1014d3
mov ecx, dword [esi + 0x242e8]
push 0x17f9
movzx eax, ax
mov eax, dword [ecx + eax*4]
sar eax, 0x10
push eax
push 0x1029
jmp 0x3f3968ad
push dword [esp + 0x20]
push ebp
push ebx
mov ecx, esi
call fcn.3f10152e
jmp 0x3f24ad35
cmp word [esi + 0x58], bp
je 0x3f3969b6
jmp 0x3f24ae03
mov ax, word [esi + 0x24]
push eax
jmp 0x3f24af8b
test byte [eax + 0x6d], 0x10
je 0x3f24b0ae
jmp 0x3f24b2d7
cmp word [eax + 2], 0x13ad
jne 0x3f24b4bc
movsx eax, word [eax + 0x64]
shl eax, 7
mov ax, word [eax + ecx + 0x3e]
mov ecx, esi
push eax
push ebp
call fcn.3f1011e8
test eax, eax
jne 0x3f24b4bc
mov eax, dword [esi + 0x242e4]
push 0x3f396620
mov ecx, esi
mov ax, word [eax + edi + 0x20]
push eax
call fcn.3f105648
test ax, ax
je 0x3f24b5bf
jmp 0x3f24b4bc
movsx eax, word [eax + 0x64]
nop
shl eax, 7
movzx eax, word [ecx + eax + 0x3e]
mov ecx, dword [esi + 0x242e8]
mov ax, word [ecx + eax*4]
mov ecx, esi
push eax
push ebp
call fcn.3f1011e8
test eax, eax
je 0x3f24b5bf
mov ecx, dword [esi + 0x242e4]
movsx edx, word [ecx + edi + 0x64]
lea eax, [ecx + edi]
shl edx, 7
add edx, ecx
test byte [edx + 0x6a], 1
jne 0x3f24b4d2
movzx edx, word [edx + 0x3e]
mov ebx, dword [esi + 0x242e8]
mov edx, dword [ebx + edx*4]
sar edx, 0x10
shl edx, 7
test byte [edx + ecx + 0x6a], 1
je 0x3f24b5bf
jmp 0x3f24b4d2
test byte [eax + 0x6d], 0x10
jne 0x3f24b500
jmp 0x3f24b5bf
test byte [eax + 0x6e], 0x20
jne 0x3f24b7ae
jmp 0x3f24bac8
mov ebx, 0x3f2204f0
jmp 0x3f24bc92