Function at 0x43c447
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x498
mov eax, dword [ebp + 8]
mov dword [esp + 0x114], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x160], 0
mov dword [esp + 0x110], 0
mov dword [esp + 0x10c], 0
mov dword [esp + 0x108], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0x2c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
mov dword [esp + 0xb0], 0
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x68], eax
mov dword [esp + 0xac], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0xfc], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xf4], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd4], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x74], 0
cmp dword [esp + 0x74], 0xa
jae 0x43c60e
jmp 0x43c5df
mov dword [esp + 0x70], 0
jmp 0x43c5e9
cmp dword [esp + 0x70], 0xffffffff
jae 0x43c5ff
jmp 0x43c5f2
mov eax, dword [esp + 0x70]
add eax, 1
mov dword [esp + 0x70], eax
jmp 0x43c5e9
jmp 0x43c601
mov eax, dword [esp + 0x74]
add eax, 1
mov dword [esp + 0x74], eax
jmp 0x43c5d6
xor eax, eax
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x44]
mov dword [esp + 0xa8], ecx
mov ecx, dword [esp + 0xa8]
mov edx, eax
mov si, word [ecx + edx*2]
add eax, 1
cmp si, 0
jne 0x43c628
mov dword [esp + 0xd8], edx
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xd8]
sub ecx, 1
movzx eax, word [eax + ecx*2]
cmp eax, 0x22
jne 0x43c65d
jmp 0x43e716
mov dword [esp], 0x7fdaa399
call fcn.0043c3bf
movzx eax, word [eax]
cmp eax, 0x8664
jne 0x43c67b
mov dword [esp + 0x58], 1
cmp dword [esp + 0x12c], 0
jne 0x43c698
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov dword [esp + 4], 0x8ca0
call fcn.0043c366
jmp 0x43c69a
lea eax, [esp + 0x16c]
mov ecx, 0x11c
cmp ecx, 0
je 0x43c6b6
mov byte [eax], 0
add eax, 1
add ecx, 0xffffffff
jmp 0x43c6a6
mov eax, dword [esp + 0x68]
movzx eax, word [eax + 0xac]
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0xa4]
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0xa8]
mov dword [esp + 0x174], eax
cmp dword [esp + 0x170], 6
sete al
test al, 1
jne 0x43c6fb
jmp 0x43c730
cmp dword [esp + 0x174], 1
jne 0x43c730
mov dword [esp], 0x7fdaa1dd
call fcn.0043c3bf
movzx eax, byte [eax]
cmp eax, 0
je 0x43c72e
mov dword [esp], 0x7fdaa1d1
call fcn.0043c3bf
mov al, byte [eax]
mov byte [esp + 0x286], al
jmp 0x43c730
mov esi, dword [ebp + 8]
mov dword [esp], 0x204f36
call fcn.0043c3bf
add esi, eax
mov dword [esp + 0xf4], esi
mov eax, dword [esp + 0xf4]
mov dword [esp], eax
call fcn.0043c322
mov dword [esp + 0xf8], eax
mov esi, dword [ebp + 8]
mov dword [esp], 0x204fe9
call fcn.0043c3bf
add esi, eax
mov dword [esp + 0xfc], esi
mov eax, dword [esp + 0xfc]
mov dword [esp], eax
call fcn.0043c322
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0xac], eax
mov dword [esp + 0x4c], 0
jmp 0x43c7a7
cmp dword [esp + 0x4c], 0x105
setb al
test al, 1
jne 0x43c7b8
jmp 0x43c7d3
mov eax, dword [esp + 0x4c]
mov word [esp + eax*2 + 0x28a], 0
mov eax, dword [esp + 0x4c]
add eax, 1
mov dword [esp + 0x4c], eax
jmp 0x43c7a5
lea edx, [esp + 0x28a]
mov eax, dword [esp + 0x104]
cmp eax, 0
je 0x43c80f
jmp 0x43c7e8
mov ecx, edx
mov si, word [ecx]
add edx, 2
cmp si, 0
jne 0x43c7e8
mov dx, word [eax]
cmp dx, 0
je 0x43c80a
mov word [ecx], dx
add ecx, 2
add eax, 2
jmp 0x43c7f6
mov word [ecx], 0
lea edx, [esp + 0x28a]
mov eax, dword [esp + 0xac]
cmp eax, 0
je 0x43c84b
jmp 0x43c824
mov ecx, edx
mov si, word [ecx]
add edx, 2
cmp si, 0
jne 0x43c824
mov dx, word [eax]
cmp dx, 0
je 0x43c846
mov word [ecx], dx
add ecx, 2
add eax, 2
jmp 0x43c832
mov word [ecx], 0
lea eax, [esp + 0x28a]
mov edx, eax
mov ecx, eax
mov si, word [edx]
test si, si
je 0x43c868
jmp 0x43c860
sub si, 0x5c
je 0x43c86c
jmp 0x43c871
mov edx, eax
jmp 0x43c876
mov ecx, edx
add ecx, 2
add edx, 2
jmp 0x43c856
cmp eax, ecx
jae 0x43c888
mov si, word [eax]
mov word [edx], si
add eax, 2
add edx, 2
jmp 0x43c876
mov word [edx], 0
mov dword [esp + 0x100], edx
mov ecx, dword [esp + 0xf8]
mov eax, dword [esp + 0x100]
cmp eax, 0
sete dl
cmp ecx, 0
sete dh
or dl, dh
cmp eax, ecx
sete dh
or dh, dl
test dh, 1
jne 0x43c8d7
jmp 0x43c8be
mov dx, word [ecx]
cmp dx, 0
je 0x43c8d2
mov word [eax], dx
add eax, 2
add ecx, 2
jmp 0x43c8be
mov word [eax], 0
xor ecx, ecx
lea edx, [esp + 0x28a]
mov eax, ecx
mov si, word [edx + eax*2]
add ecx, 1
cmp si, 0
jne 0x43c8e0
lea ecx, [esp + 0x28a]
shl eax, 1
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xa4]
mov word [esp + 0x130], ax
mov eax, dword [esp + 0xa4]
add eax, 2
mov word [esp + 0x132], ax
mov dword [esp + 0x134], ecx
lea eax, [esp + 0xdc]
mov ecx, 0x18
cmp ecx, 0
je 0x43c944
mov byte [eax], 0
add eax, 1
add ecx, 0xffffffff
jmp 0x43c934
mov dword [esp + 0xdc], 0x18
mov dword [esp + 0xe0], 0
mov dword [esp + 0xe8], 0x40
lea eax, [esp + 0x130]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
lea eax, [esp + 0x40]
mov ecx, 8
cmp ecx, 0
je 0x43c9a2
mov byte [eax], 0
add eax, 1
add ecx, 0xffffffff
jmp 0x43c992
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x178]
mov eax, dword [esp + 0x170]
cmp eax, 0xa
sete dl
cmp esi, 0
je 0x43caf0
test dl, 1
jne 0x43c9ca
jmp 0x43ca16
cmp dword [esp + 0x174], 0
jne 0x43cab2
xor eax, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.0043c1b0
jmp 0x43cd33
cmp eax, 6
jne 0x43cab2
mov eax, dword [esp + 0x174]
mov ecx, eax
sub ecx, 2
je 0x43ca74
jmp 0x43ca2f
sub eax, 3
jne 0x43cab2
jmp 0x43ca36
xor eax, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.0043c0d6
jmp 0x43cd33
xor eax, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.0043c115
jmp 0x43cd33
xor eax, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.0043c08c
jmp 0x43cd33
test dl, 1
jne 0x43cafa
jmp 0x43cc37
cmp dword [esp + 0x174], 0
mov eax, 0xc00000bb
jne 0x43cd33
mov eax, ecx
sub eax, 0x2800
je 0x43cb3f
jmp 0x43cb18
mov eax, ecx
sub eax, 0x295a
je 0x43cb3f
jmp 0x43cb23
mov eax, ecx
sub eax, 0x3839
je 0x43cb7d
jmp 0x43cb2e
sub ecx, 0x3ad7
je 0x43cbbb
jmp 0x43cbf9
xor eax, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.0043c081
jmp 0x43cd33
xor eax, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.0043c238
jmp 0x43cd33
xor eax, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.0043c0f5
jmp 0x43cd33
xor eax, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.0043c0cb
jmp 0x43cd33
cmp eax, 6
mov eax, 0xc00000bb
jne 0x43cd33
mov eax, 0xc00000bb
mov ecx, dword [esp + 0x174]
mov edx, ecx
sub edx, 1
je 0x43cceb
jmp 0x43cc5e
mov edx, ecx
sub edx, 2
je 0x43ccb0
jmp 0x43cc67
sub ecx, 3
jne 0x43cd33
jmp 0x43cc72
xor eax, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.0043c219
jmp 0x43cd33
xor eax, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.0043c16a
jmp 0x43cd33
cmp byte [esp + 0x286], 1
mov eax, 0xc00000bb
jne 0x43cd33
xor eax, eax
lea eax, [esp + 0x38]
mov dword [esp], eax
mov dword [esp + 4], 0x100001
lea eax, [esp + 0xdc]
mov dword [esp + 8], eax
lea eax, [esp + 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
call fcn.0043c20e
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], 0
jge 0x43cd43
jmp 0x43e716
mov esi, dword [ebp + 8]
mov dword [esp], 0x2751fd
call fcn.0043c3bf
add esi, eax
mov eax, dword [esi]
mov dword [esp + 0x110], eax
call dword [esp + 0x110]
mov dword [esp + 0xb4], eax
cmp dword [esp + 0xb4], 0
jne 0x43cd7a
jmp 0x43e716
mov dword [esp], 0x247139
call fcn.0043c3bf
mov dword [esp + 0x6c], eax
mov dword [esp + 0xd0], 0
mov esi, dword [ebp + 8]
mov dword [esp], 0x2751f9
call fcn.0043c3bf
add esi, eax
mov eax, dword [esi]
mov dword [esp + 0x10c], eax
mov eax, dword [esp + 0x10c]
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0xb4]
mov dword [esp], edx
mov dword [esp + 4], 8
mov dword [esp + 8], ecx
call eax
sub esp, 0xc
mov dword [esp + 0x78], eax
cmp dword [esp + 0x78], 0
jne 0x43cde5
jmp 0x43e716
lea eax, [esp + 0x40]
mov ecx, 8
cmp ecx, 0
je 0x43cdfe
mov byte [eax], 0
add eax, 1
add ecx, 0xffffffff
jmp 0x43cdee
lea eax, [esp + 0x50]
mov ecx, 8
cmp ecx, 0
je 0x43ce17
mov byte [eax], 0
add eax, 1
add ecx, 0xffffffff
jmp 0x43ce07
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x50], eax
mov dword [esp + 0x64], 0
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x6c]
jae 0x43d3ec
mov ecx, dword [esp + 0x6c]
sub ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x78]
add edx, dword [esp + 0x64]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x48], eax
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x178]
mov eax, dword [esp + 0x170]
cmp eax, 0xa
sete bl
cmp esi, 0
je 0x43cfd6
test bl, 1
jne 0x43ce78
jmp 0x43ced1
cmp dword [esp + 0x174], 0
jne 0x43cf8b
xor eax, eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
call fcn.0043c100
jmp 0x43d225
cmp eax, 6
jne 0x43cf8b
mov eax, dword [esp + 0x174]
mov esi, eax
sub esi, 2
je 0x43cf40
jmp 0x43ceea
sub eax, 3
jne 0x43cf8b
jmp 0x43cef5
xor eax, eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
call fcn.0043c297
jmp 0x43d225
xor eax, eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
call fcn.0043c1f9
jmp 0x43d225
xor eax, eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
call fcn.0043c224
jmp 0x43d225
test bl, 1
jne 0x43cfe0
jmp 0x43d102
cmp dword [esp + 0x174], 0
mov eax, 0xc00000bb
jne 0x43d225
mov eax, edi
sub eax, 0x2800
je 0x43d021
jmp 0x43cffe
mov eax, edi
sub eax, 0x295a
je 0x43d021
jmp 0x43d009
mov eax, edi
sub eax, 0x3839
je 0x43d06c
jmp 0x43d014
sub edi, 0x3ad7
je 0x43d06c
jmp 0x43d0b7
xor eax, eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
call fcn.0043c0e0
jmp 0x43d225
xor eax, eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
call fcn.0043c0b5
jmp 0x43d225
xor eax, eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
call fcn.0043c155
jmp 0x43d225
cmp eax, 6
mov eax, 0xc00000bb
jne 0x43d225
mov eax, 0xc00000bb
mov edi, dword [esp + 0x174]
mov esi, edi
sub esi, 1
je 0x43d1d0
jmp 0x43d129
mov esi, edi
sub esi, 2
je 0x43d188
jmp 0x43d132
sub edi, 3
jne 0x43d225
jmp 0x43d13d
xor eax, eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
call fcn.0043c1ba
jmp 0x43d225
xor eax, eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
call fcn.0043c14a
jmp 0x43d225
cmp byte [esp + 0x286], 1
mov eax, 0xc00000bb
jne 0x43d225
xor eax, eax
mov eax, dword [esp + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
lea eax, [esp + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
lea eax, [esp + 0x50]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
call fcn.0043c134
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], 0
jge 0x43d235
jmp 0x43e716
cmp dword [esp + 0x3c], 0x103
jne 0x43d3c0
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x170]
cmp eax, 0xa
sete dl
cmp esi, 0
je 0x43d30a
test dl, 1
jne 0x43d268
jmp 0x43d291
cmp dword [esp + 0x174], 0
jne 0x43d2eb
xor eax, eax
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], 0
call fcn.0043c12a
jmp 0x43d3aa
cmp eax, 6
jne 0x43d2eb
mov eax, dword [esp + 0x174]
mov edx, eax
sub edx, 2
je 0x43d2cc
jmp 0x43d2a6
sub eax, 3
jne 0x43d2eb
jmp 0x43d2ad
xor eax, eax
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], 0
call fcn.0043c160
jmp 0x43d3aa
xor eax, eax
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], 0
call fcn.0043c096
jmp 0x43d3aa
xor eax, eax
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], 0
call fcn.0043c1c5
jmp 0x43d3aa
test dl, 1
jne 0x43d311
jmp 0x43d340
cmp dword [esp + 0x174], 0
mov eax, 0xc00000bb
jne 0x43d3aa
xor eax, eax
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], 0
call fcn.0043c203
jmp 0x43d3aa
cmp eax, 6
mov eax, 0xc00000bb
jne 0x43d3aa
mov eax, dword [esp + 0x174]
mov edx, eax
and edx, 0xfffffffe
cmp edx, 2
jne 0x43d377
xor eax, eax
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], 0
call fcn.0043c0aa
jmp 0x43d3aa
cmp eax, 1
mov eax, 0xc00000bb
jne 0x43d3aa
cmp byte [esp + 0x286], 1
mov eax, 0xc00000bb
jne 0x43d3aa
xor eax, eax
mov dword [esp], ecx
mov dword [esp + 4], 1
mov dword [esp + 8], 0
call fcn.0043c13f
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], 0
jge 0x43d3ba
jmp 0x43e716
jmp 0x43d3bc
jmp 0x43d3be
jmp 0x43d3c0
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x64]
add ecx, eax
mov dword [esp + 0x64], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x54]
add ecx, eax
adc edx, 0
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], edx
jmp 0x43ce2a
mov eax, dword [esp + 0x78]
mov dword [esp], eax
call fcn.0043c322
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x60]
mov eax, dword [eax + 5]
mov dword [esp + 0x34], eax
mov esi, dword [esp + 0x58]
mov ecx, dword [esp + 0x178]
mov eax, dword [esp + 0x170]
cmp eax, 0xa
sete dl
cmp esi, 0
je 0x43d555
test dl, 1
jne 0x43d437
jmp 0x43d481
cmp dword [esp + 0x174], 0
jne 0x43d519
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c22e
jmp 0x43d846
cmp eax, 6
jne 0x43d519
mov eax, dword [esp + 0x174]
mov ecx, eax
sub ecx, 2
je 0x43d4dd
jmp 0x43d49a
sub eax, 3
jne 0x43d519
jmp 0x43d4a1
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c1cf
jmp 0x43d846
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c277
jmp 0x43d846
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c2c4
jmp 0x43d846
test dl, 1
jne 0x43d55f
jmp 0x43d753
cmp dword [esp + 0x174], 0
mov eax, 0xc00000bb
jne 0x43d846
mov eax, ecx
sub eax, 0x2800
je 0x43d5eb
jmp 0x43d57d
mov eax, ecx
sub eax, 0x295a
je 0x43d627
jmp 0x43d58c
mov eax, ecx
sub eax, 0x3839
je 0x43d663
jmp 0x43d59b
mov eax, ecx
sub eax, 0x3ad7
je 0x43d69f
jmp 0x43d5aa
mov eax, ecx
sub eax, 0x3fab
je 0x43d6db
jmp 0x43d5b9
mov eax, ecx
sub eax, 0x42ee
je 0x43d6db
jmp 0x43d5c8
mov eax, ecx
sub eax, 0x4563
je 0x43d6db
jmp 0x43d5d7
add ecx, 0xffffb846
sub ecx, 2
jb 0x43d6db
jmp 0x43d717
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c281
jmp 0x43d846
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c258
jmp 0x43d846
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c24d
jmp 0x43d846
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c10a
jmp 0x43d846
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c1a5
jmp 0x43d846
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c0c0
jmp 0x43d846
cmp eax, 6
mov eax, 0xc00000bb
jne 0x43d846
mov eax, 0xc00000bb
mov ecx, dword [esp + 0x174]
mov edx, ecx
sub edx, 1
je 0x43d800
jmp 0x43d77a
mov edx, ecx
sub edx, 2
je 0x43d7c7
jmp 0x43d783
sub ecx, 3
jne 0x43d846
jmp 0x43d78e
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c1d9
jmp 0x43d846
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c2b9
jmp 0x43d846
cmp byte [esp + 0x286], 1
mov eax, 0xc00000bb
jne 0x43d846
xor eax, eax
mov eax, 0xffffffff
mov dword [esp], eax
lea eax, [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], 0
lea eax, [esp + 0x34]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x3000
mov dword [esp + 0x14], 0x40
call fcn.0043c175
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], 0
jl 0x43d858
cmp dword [esp + 0x30], 0
jne 0x43d85d
jmp 0x43e716
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x60]
add eax, dword [ecx + 0x11]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x60]
add eax, dword [ecx + 0x15]
mov dword [esp + 0xb0], eax
mov dword [esp + 0x4c], 0
jmp 0x43d888
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x60]
cmp eax, dword [ecx + 0xd]
setb al
test al, 1
jne 0x43d89c
jmp 0x43d8e5
xor eax, eax
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx + 5]
mov edx, dword [esp + 0x5c]
add edx, 0xd
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x5c]
add esi, dword [edi + 1]
cmp eax, ecx
je 0x43d8c6
mov bl, byte [edx + eax]
mov byte [esi + eax], bl
add eax, 1
jmp 0x43d8b7
mov eax, dword [esp + 0x5c]
add eax, 0xd
mov ecx, dword [esp + 0x5c]
add eax, dword [ecx + 5]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x4c]
add eax, 1
mov dword [esp + 0x4c], eax
jmp 0x43d886
mov eax, dword [esp + 0xb0]
movzx eax, byte [eax]
and eax, 8
cmp eax, 0
je 0x43da43
xor eax, eax
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x60]
sub eax, dword [edx + 1]
add ecx, eax
mov dword [esp + 0xbc], ecx
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0xb0]
add eax, dword [ecx + 0x19]
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x128], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xb8], ecx
mov edi, eax
add edi, 4
mov ebx, dword [eax + 4]
cmp ebx, 0
je 0x43da43
add ebx, 0xfffffff8
shr ebx, 1
mov ecx, eax
add ecx, 8
mov dword [esp + 0x8c], ecx
cmp ebx, 0
je 0x43da3c
mov dword [esp + 0x118], 0
mov ecx, dword [esp + 0x8c]
mov dx, word [ecx]
mov cx, dx
and cx, 0xf000
cmp cx, 0x3000
jne 0x43da2c
mov dword [esp + 0x90], 0
mov ecx, dword [esp + 0xb8]
add ecx, dword [eax]
mov dword [esp + 0x11c], ecx
and dx, 0xfff
movzx edx, dx
mov dword [esp + 0x120], edx
mov edx, dword [esp + 0x128]
mov ecx, dword [esp + 0x120]
mov esi, dword [esp + 0x11c]
add edx, dword [esi + ecx]
mov dword [esp + 0x118], edx
mov edx, dword [esp + 0xb8]
add edx, dword [eax]
mov ecx, dword [esp + 0x8c]
mov cx, word [ecx]
and cx, 0xfff
movzx ecx, cx
add edx, ecx
mov dword [esp + 0x124], edx
cmp dword [esp + 0x90], 4
je 0x43da2a
lea ecx, [esp + 0x118]
mov edx, dword [esp + 0x90]
mov cl, byte [ecx + edx]
mov esi, dword [esp + 0x124]
mov byte [esi + edx], cl
add edx, 1
mov dword [esp + 0x90], edx
jmp 0x43d9f9
jmp 0x43da2c
add dword [esp + 0x8c], 2
add ebx, 0xffffffff
jmp 0x43d95b
add eax, dword [edi]
jmp 0x43d938
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x60]
add eax, dword [ecx + 9]
mov dword [esp + 0x108], eax
mov dword [esp], 0x275129
call fcn.0043c3bf
mov dword [esp + 0x9c], eax
cmp dword [esp + 0x9c], 0
je 0x43da85
mov eax, dword [ebp + 8]
add eax, dword [esp + 0x9c]
mov eax, dword [eax]
mov dword [esp + 0xc8], eax
mov dword [esp], 0x24a3b5
call fcn.0043c3bf
mov dword [esp + 0xa0], eax
cmp dword [esp + 0xa0], 0
je 0x43dab5
mov eax, dword [ebp + 8]
add eax, dword [esp + 0xa0]
mov eax, dword [eax]
mov dword [esp + 0xcc], eax
mov dword [esp], 0x24a3b5
call fcn.0043c3bf
mov dword [esp + 0x94], eax
cmp dword [esp + 0x94], 0
je 0x43dae5
mov eax, dword [ebp + 8]
add eax, dword [esp + 0x94]
mov eax, dword [eax]
mov dword [esp + 0xc0], eax
jmp 0x43dae7
mov dword [esp], 0x275119
call fcn.0043c3bf
mov dword [esp + 0x98], eax
cmp dword [esp + 0x98], 0
setne al
test al, 1
jne 0x43db0b
jmp 0x43db1e
mov eax, dword [ebp + 8]
add eax, dword [esp + 0x98]
mov eax, dword [eax]
mov dword [esp + 0xc4], eax
lea eax, [esp + 0x138]
mov ecx, 0x20
cmp ecx, 0
je 0x43db3a
mov byte [eax], 0
add eax, 1
add ecx, 0xffffffff
jmp 0x43db2a
mov eax, dword [esp + 0x108]
mov dword [esp + 0x138], eax
lea eax, [esp + 0x16c]
mov dword [esp + 0x13c], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x140], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x144], eax
mov eax, dword [esp + 0xc0]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x150], eax
lea eax, [0x40135e]
mov dword [esp + 0x154], eax
mov esi, dword [ebp + 8]
mov dword [esp], 0x276078
call fcn.0043c3bf
add esi, eax
mov dword [esp + 0xd4], esi
lea ecx, [esp + 0x138]
mov edx, dword [esp + 0xd4]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x178]
mov eax, dword [esp + 0x170]
cmp eax, 0xa
sete bl
cmp edi, 0
je 0x43e176
test bl, 1
jne 0x43dbfa
jmp 0x43e027
cmp dword [esp + 0x174], 0
mov eax, 0xc00000bb
jne 0x43e55a
mov eax, esi
sub eax, 0x2800
je 0x43dc75
jmp 0x43dc18
mov eax, esi
sub eax, 0x295a
je 0x43dcd1
jmp 0x43dc27
mov eax, esi
sub eax, 0x3839
je 0x43dd2d
jmp 0x43dc36
mov eax, esi
sub eax, 0x3ad7
je 0x43dd89
jmp 0x43dc45
mov eax, esi
sub eax, 0x3fab
je 0x43dde5
jmp 0x43dc54
mov eax, esi
sub eax, 0x42ee
je 0x43de41
jmp 0x43dc63
mov eax, esi
sub eax, 0x4563
je 0x43de9d
jmp 0x43def9
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c1e4
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c26d
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c30e
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c263
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c2ef
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c304
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c243
jmp 0x43e55a
mov eax, esi
and eax, 0xfffffffe
cmp eax, 0x47ba
jne 0x43df61
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c0eb
jmp 0x43e55a
add esi, 0xffffb59f
cmp esi, 0xb8f
jae 0x43dfcb
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c0a0
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c18b
jmp 0x43e55a
cmp eax, 6
mov eax, 0xc00000bb
jne 0x43e55a
mov eax, 0xc00000bb
mov esi, dword [esp + 0x174]
mov edi, esi
sub edi, 1
je 0x43e11a
jmp 0x43e04e
mov edi, esi
sub edi, 2
je 0x43e0be
jmp 0x43e057
sub esi, 3
jne 0x43e55a
jmp 0x43e062
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c2a1
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c077
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c318
jmp 0x43e55a
test bl, 1
jne 0x43e180
jmp 0x43e404
cmp dword [esp + 0x174], 0
mov eax, 0xc00000bb
jne 0x43e55a
mov eax, esi
sub eax, 0x2800
je 0x43e1dc
jmp 0x43e19e
mov eax, esi
sub eax, 0x295a
je 0x43e238
jmp 0x43e1ad
mov eax, esi
sub eax, 0x3839
je 0x43e294
jmp 0x43e1bc
mov eax, esi
sub eax, 0x3ad7
je 0x43e2f0
jmp 0x43e1cb
sub esi, 0x3fab
je 0x43e34c
jmp 0x43e3a8
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c195
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c2e4
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c2ce
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c180
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c1ee
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c11f
jmp 0x43e55a
cmp eax, 6
mov eax, 0xc00000bb
jne 0x43e55a
mov eax, 0xc00000bb
mov esi, dword [esp + 0x174]
mov edi, esi
sub edi, 1
je 0x43e4f4
jmp 0x43e42b
mov edi, esi
sub edi, 2
je 0x43e49b
jmp 0x43e434
sub esi, 3
jne 0x43e55a
jmp 0x43e43f
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c2d9
jmp 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c28c
jmp 0x43e55a
cmp byte [esp + 0x286], 1
mov eax, 0xc00000bb
jne 0x43e55a
xor eax, eax
lea eax, [esp + 0x2c]
mov dword [esp], eax
mov dword [esp + 4], 0x1fffff
mov dword [esp + 8], 0
mov eax, 0xffffffff
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.0043c2f9
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], 0
jge 0x43e56a
jmp 0x43e716
jmp 0x43e56c
jmp 0x43e56e
jmp 0x43e570
mov dword [esp + 0x84], 0xffffffff
mov dword [esp + 0x80], 0xfd050f80
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x58]
mov eax, dword [esp + 0x170]
cmp eax, 0xa
sete dl
cmp esi, 0
je 0x43e651
test dl, 1
jne 0x43e5ab
jmp 0x43e5d5
cmp dword [esp + 0x174], 0
jne 0x43e631
mov dword [esp], ecx
mov dword [esp + 4], 1
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0043c12a
jmp 0x43e6f4
cmp eax, 6
jne 0x43e631
mov eax, dword [esp + 0x174]
mov edx, eax
sub edx, 2
je 0x43e611
jmp 0x43e5ea
sub eax, 3
jne 0x43e631
jmp 0x43e5f1
mov dword [esp], ecx
mov dword [esp + 4], 1
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0043c160
jmp 0x43e6f4
mov dword [esp], ecx
mov dword [esp + 4], 1
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0043c096
jmp 0x43e6f4
mov dword [esp], ecx
mov dword [esp + 4], 1
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0043c1c5
jmp 0x43e6f4
test dl, 1
jne 0x43e658
jmp 0x43e688
cmp dword [esp + 0x174], 0
mov eax, 0xc00000bb
jne 0x43e6f4
mov dword [esp], ecx
mov dword [esp + 4], 1
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0043c203
jmp 0x43e6f4
cmp eax, 6
mov eax, 0xc00000bb
jne 0x43e6f4
mov eax, dword [esp + 0x174]
mov edx, eax
and edx, 0xfffffffe
cmp edx, 2
jne 0x43e6c0
mov dword [esp], ecx
mov dword [esp + 4], 1
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0043c0aa
jmp 0x43e6f4
cmp eax, 1
mov eax, 0xc00000bb
jne 0x43e6f4
cmp byte [esp + 0x286], 1
mov eax, 0xc00000bb
jne 0x43e6f4
mov dword [esp], ecx
mov dword [esp + 4], 1
lea eax, [esp + 0x80]
mov dword [esp + 8], eax
call fcn.0043c13f
mov dword [esp + 0x3c], eax
cmp dword [esp + 0x3c], 0x102
setne al
test al, 1
jne 0x43e709
jmp 0x43e70f
jmp 0x43e70b
jmp 0x43e70d
jmp 0x43e714
jmp 0x43e56c
jmp 0x43e716
mov esi, dword [ebp + 8]
mov dword [esp], 0x275371
call fcn.0043c3bf
xor ecx, ecx
add esi, eax
mov eax, dword [esi]
mov dword [esp + 0x114], eax
mov dword [esp], 0
call dword [esp + 0x114]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret