Function at 0x45c3fd
Capabilities:
Inspect section memory permissions

Disassembly:
push ebx
mov ebx, esp
push ecx
push ecx
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48c96c
mov eax, dword fs:[0]
push eax
push ebx
mov eax, 0x2530
call fcn.0047d5a0
mov eax, dword [0x5a1014]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x2410], edi
mov esi, ecx
mov dword [ebp - 0x23e8], esi
mov eax, dword [0x5a1100]
mov dword [ebp - 0x249c], eax
mov eax, dword [esi + 0x89c]
mov dword [ebp - 0x2434], eax
mov eax, dword [ebx + 8]
mov dword [0x5a1100], 0x401e28
mov dword [ebp - 0x23f8], eax
test al, al
je 0x45c48b
push edi
call fcn.0045c0f2
mov dword [ebp - 0x2434], eax
xor eax, eax
mov ecx, edi
mov dword [ebp - 0x24cc], eax
mov byte [ebp - 0x2419], al
lea eax, [ebp - 0x2320]
push eax
call fcn.004cc3d3
mov edx, dword [0x5a3530]
mov ecx, eax
xor eax, eax
mov dword [ebp - 0x240c], ecx
mov dword [ebp - 0x245c], eax
mov dword [ebp - 0x2424], edx
cmp dword [0x5a3538], eax
jbe 0x45c81b
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
mov dword [ebp - 0x23e0], eax
mov eax, dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wsplitpath_s]
mov dword [ebp - 0x2418], eax
mov eax, dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wmakepath_s]
mov dword [ebp - 0x2440], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
mov dword [ebp - 0x2438], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscat_s]
mov dword [ebp - 0x2420], eax
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fgetws]
mov dword [ebp - 0x24d0], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcstok_s]
mov dword [ebp - 0x2448], eax
mov eax, dword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov dword [ebp - 0x2444], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
mov dword [ebp - 0x24c4], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcmp]
mov dword [ebp - 0x24c0], eax
mov eax, dword [sym.imp.VCRUNTIME140.dll_wcschr]
mov dword [ebp - 0x2464], eax
mov eax, dword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wfullpath]
mov dword [ebp - 0x24b8], eax
mov eax, dword [sym.imp.ole32.dll_CoCreateGuid]
mov dword [ebp - 0x2478], eax
mov eax, dword [sym.imp.ole32.dll_StringFromGUID2]
mov dword [ebp - 0x247c], eax
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__wfsopen]
mov dword [ebp - 0x2480], eax
mov eax, dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__get_wpgmptr]
mov dword [ebp - 0x2484], eax
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__filelength]
mov dword [ebp - 0x2490], eax
mov eax, dword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__fileno]
mov dword [ebp - 0x248c], eax
lea eax, [edx + 4]
mov edx, dword [eax]
mov dword [ebp - 0x23ec], eax
call fcn.0045c251
mov edi, eax
xor eax, eax
mov dword [ebp - 0x23e4], eax
mov eax, dword [ebp - 0x23ec]
mov dword [ebp - 0x23f4], edi
mov ecx, dword [eax]
call fcn.0045c3b6
cmp byte [ebp - 0x23f8], 0
mov dword [ebp - 0x23f0], eax
je 0x45ced5
push 0x401fa0
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b29e8
cmp byte [ebp - 0x23f8], 0
je 0x45cf15
push 0x401fac
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x45cbcb
cmp byte [ebp - 0x23f8], 0
je 0x45cf8d
push 0x401e78
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2c49
cmp byte [ebp - 0x23f8], 0
je 0x45d000
push 0x401e9c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2c77
cmp byte [ebp - 0x23f8], 0
je 0x45d033
push 0x401ec0
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2e4d
cmp byte [ebp - 0x23f8], 0
je 0x45d0ab
push 0x401ee4
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b3256
cmp byte [ebp - 0x23f8], 0
je 0x45d10c
push 0x401f04
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b350b
cmp byte [ebp - 0x23f8], 0
je 0x45d156
push 0x401f10
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b3c11
push 0x401f3c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b3cee
cmp byte [ebp - 0x23f8], 0
je 0x45d22a
push 0x401f54
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b3efd
cmp byte [ebp - 0x23f8], 0
je 0x45d28b
push 0x401f7c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4031
cmp byte [ebp - 0x23f8], 0
je 0x45d2a7
push 0x401e60
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c846
xor edx, edx
cmp dword [edi + 4], edx
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
mov esi, dword [eax]
mov eax, dword [ebp - 0x23e8]
test dword [eax + 0x14c], 0x100000
jne 0x45c79f
push edx
lea edx, [eax + 0x888]
lea ecx, [esi + 0x16]
call fcn.0045c120
cmp byte [ebp - 0x23f8], 0
je 0x4b44fe
mov esi, dword [ebp - 0x23f4]
mov ecx, dword [esi]
call fcn.004cc3e3
mov eax, dword [ebp - 0x2424]
mov esi, dword [ebp - 0x245c]
mov edi, dword [ebp - 0x23f0]
inc esi
cmp byte [ebp - 0x23f8], 0
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x245c], esi
mov dword [ebp - 0x2424], eax
je 0x45cfee
mov ecx, edi
call fcn.0045c3f0
cmp esi, dword [0x5a3538]
jae 0x45c80e
mov esi, dword [ebp - 0x23e8]
mov ecx, dword [ebp - 0x240c]
mov edx, dword [ebp - 0x2424]
jmp 0x45c595
cmp byte [ebp - 0x2419], 0
jne 0x4b93c5
mov eax, dword [ebp - 0x249c]
mov dword [0x5a1100], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0047a40f
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 4
cmp byte [ebp - 0x23f8], 0
je 0x45d36a
push 0x401df0
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b46d6
push 0x401e10
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x45cca3
cmp byte [ebp - 0x23f8], 0
je 0x45d3cb
push 0x401de8
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b46f4
cmp byte [ebp - 0x23f8], 0
je 0x45d3e7
push 0x401da4
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b492d
cmp byte [ebp - 0x23f8], 0
je 0x45d448
push 0x401dc4
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4ae0
push 0x401ddc
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x45dc2e
cmp byte [ebp - 0x23f8], 0
je 0x45d4d7
push 0x401d94
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x45e1cb
cmp byte [ebp - 0x23f8], 0
je 0x45c998
push 0x401d74
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45ca7e
cmp dword [edi + 4], eax
jbe 0x45c7ac
lea esi, [edi + 0xc]
cmp dword [esi - 4], 0
je 0x4b30c7
cmp dword [esi], 0
je 0x4b30c7
push dword [esi]
mov ecx, dword [0x5a2f60]
push dword [esi - 4]
push dword [ebp - 0x2410]
call fcn.0045b67a
mov eax, dword [ebp - 0x23e4]
add esi, 8
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jae 0x45c7ac
jmp 0x45c954
push 0x404164
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4e5e
push 0x4041f4
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4eb6
push 0x4042a8
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4f19
push 0x4041b8
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4f39
push 0x404268
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4f83
push 0x404274
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b5000
push 0x404010
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b50ed
push 0x4041cc
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b5102
push 0x40410c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b5111
push 0x404280
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b516a
push 0x403428
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x45cdf1
push 0x4034ac
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b5584
cmp byte [ebp - 0x23f8], 0
je 0x45d538
push 0x403460
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b5707
cmp byte [ebp - 0x23f8], 0
je 0x45d554
push 0x403484
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b57bd
cmp byte [ebp - 0x23f8], 0
je 0x45d587
push 0x40349c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45ccdf
xor ecx, ecx
cmp dword [edi + 4], ecx
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
push 0x10
mov esi, dword [eax]
pop eax
push ecx
mov ecx, dword [ebp - 0x2434]
add esi, eax
push esi
call fcn.00456271
mov edi, eax
or dword [edi], 0x800000
cmp byte [0x5a2ee5], 0
jne 0x45e4f6
mov eax, dword [edi + 4]
test eax, eax
je 0x4b775b
mov eax, dword [ebp - 0x23f4]
add edi, 8
mov ecx, dword [ebp - 0x23e4]
mov edx, ecx
mov ecx, eax
call fcn.00474ab1
test al, al
je 0x4b775b
mov ecx, dword [edi]
test ecx, ecx
je 0x4b30c7
call fcn.004562c9
mov ecx, dword [edi + 4]
mov esi, eax
call fcn.004562c9
mov ecx, dword [ebp - 0x2434]
mov edx, esi
movzx ecx, byte [ecx + 0x68]
push ecx
push dword [ebp - 0x23f8]
mov ecx, dword [ebp - 0x23e8]
push eax
call fcn.00451438
mov ecx, dword [ebp - 0x23e4]
add edi, 8
mov eax, dword [ebp - 0x23f4]
inc ecx
mov dword [ebp - 0x23e4], ecx
cmp ecx, dword [eax + 4]
jb 0x45cbe5
mov edi, dword [ebp - 0x23f4]
xor eax, eax
mov byte [ebp - 0x23d9], al
mov eax, dword [ebp - 0x23e4]
cmp dword [edi + 4], eax
ja 0x4b8748
mov cl, byte [ebp - 0x23d9]
mov esi, dword [ebp - 0x23ec]
test cl, cl
je 0x45c7ac
jmp 0x45c7b2
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
test dword [esi + 0x14c], 0x100000
jne 0x45c7ac
mov eax, dword [ebp - 0x23ec]
lea edx, [esi + 0x888]
push dword [ebp - 0x2410]
mov ecx, dword [eax]
add ecx, 0x18
call fcn.00459aef
jmp 0x45c7ac
push 0x4036a8
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b5c1b
push 0x4036ec
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b5c6f
cmp dword [edi + 4], 0
je 0x4b775b
push 2
pop eax
cmp dword [edi + 4], eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23ec]
push 0x2c
mov edi, dword [eax]
add edi, 0x12
push edi
call dword [ebp - 0x2464]
mov dword [ebp - 0x2408], eax
pop ecx
pop ecx
test eax, eax
je 0x4b30c7
xor ecx, ecx
cmp word [eax + 4], cx
jne 0x4b30c7
mov ecx, eax
sub ecx, edi
sar ecx, 1
lea esi, [ecx + ecx]
lea ecx, [esi + 2]
call fcn.0043d6d0
push esi
push edi
mov edi, eax
mov dword [ebp - 0x23fc], eax
push edi
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
xor eax, eax
mov ecx, edi
mov word [edi + esi], ax
call fcn.004562c9
mov esi, eax
mov eax, dword [ebp - 0x2408]
cmp word [eax + 2], 0x53
jne 0x4b30c7
mov ecx, esi
call fcn.00450dc5
mov ecx, dword [ebp - 0x23e8]
mov dword [ebp - 0x24bc], eax
lea eax, [ebp - 0x24bc]
push eax
lea ecx, [ecx + 0xa6c]
call fcn.00472ebb
test eax, eax
je 0x4b557a
mov ecx, dword [ebp - 0x23e8]
mov eax, dword [ecx + 0xaf0]
and eax, 0xffffff5f
or eax, 0x50
mov dword [ecx + 0xaf0], eax
mov ecx, edi
call fcn.0045c3f0
mov ecx, esi
call fcn.0045c3f0
jmp 0x45c7ac
mov ecx, dword [edi]
mov edx, 0x4032cc
mov ax, word [ecx]
cmp ax, word [edx]
jne 0x45e526
test ax, ax
je 0x45cf06
mov ax, word [ecx + 2]
cmp ax, word [edx + 2]
jne 0x45e526
add ecx, 4
add edx, 4
test ax, ax
jne 0x45cedc
xor eax, eax
test eax, eax
jne 0x45c5d5
jmp 0x4b29de
push 0x4038f0
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2aad
push 0x40382c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2b16
push 0x403864
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2b2b
push 0x4038b4
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2b37
push 0x40392c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c5f9
jmp 0x4b2bac
push 0x4038d4
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x45e638
push 0x403bec
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2c10
push 0x403c58
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2c2f
push 0x403950
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c61d
jmp 0x4b2c3c
cmp dword [0x5a30e8], 0
je 0x45c7e8
jmp 0x4b92d6
push 0x403ba0
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2c56
push 0x403b00
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c641
jmp 0x4b2c6a
push 0x403c10
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2dc2
push 0x403d3c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2dcf
push 0x403988
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2ddc
push 0x403aa8
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2e33
push 0x403b50
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c665
jmp 0x4b2e40
push 0x403c98
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2fc8
push 0x403cb8
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2fdd
push 0x403cd4
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b2fea
push 0x403ad4
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c689
jmp 0x4b3057
push 0x403bc8
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b3313
push 0x403c34
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b33a3
push 0x403dc0
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c6ad
jmp 0x4b34eb
push 0x403b28
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b37fc
push 0x403d7c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b3865
push 0x403d8c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b38f1
push 0x403d68
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b38fe
push 0x403c78
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b395f
push 0x403a7c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b39c0
push 0x403a20
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b3a1f
push 0x403d54
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b3a7e
push 0x403cf0
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c6d1
jmp 0x4b3b26
push 0x403d24
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b3d06
push 0x403d0c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b3d6f
push 0x403b78
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b3e3f
push 0x4039f0
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c70c
jmp 0x4b3edd
push 0x403a50
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c730
jmp 0x4b3fbf
push 0x403d9c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b413a
push 0x4039bc
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b41a6
push 0x403db8
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b420c
push 2
pop eax
push eax
push 0x403dc8
push dword [edi]
call dword [ebp - 0x24c4]
mov ecx, dword [edi]
add esp, 0xc
test eax, eax
je 0x4b422c
push 0x403dac
push ecx
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x45e6b5
push 0x403e5c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b43af
push 0x403df4
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4447
push 0x403eb4
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c754
jmp 0x4b44be
push 0x403ea8
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4544
push 0x403e84
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b45c8
push 0x403e48
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4614
push 0x403dd0
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c853
jmp 0x4b4685
push 0x403e14
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c88e
jmp 0x4b46e5
push 0x403e70
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4757
push 0x403e98
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b47b4
push 0x403e30
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x45e605
push 0x403f18
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c8b2
jmp 0x4b489d
push 0x403f90
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4945
push 0x403ebc
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4952
push 0x403f6c
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4964
push 0x403f44
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b497f
push 0x403eec
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b49e4
push 0x403fb0
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c8d6
jmp 0x4b4a7b
push 0x403224
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4c85
push 0x4042a0
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4d61
push 0x404038
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4dc6
push 0x404180
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45c911
jmp 0x4b4dfe
push 0x404148
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45cab9
jmp 0x4b569c
push 0x404060
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b5713
push 0x403fe4
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x45cadd
jmp 0x4b5772
push 0x404248
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b583c
push 0x404228
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b5929
push 0x4041e0
push dword [edi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b597f
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
push 0xc
mov ecx, dword [eax]
pop eax
add ecx, eax
call fcn.004562c9
mov edi, dword [ebp - 0x23e8]
mov esi, eax
mov eax, dword [ebp - 0x23f8]
mov dword [ebp - 0x2408], esi
test al, al
jne 0x4b4b08
cmp byte [0x5a2ee5], 0
jne 0x4b4c4c
mov dword [0x5a3050], esi
mov dword [edi + 0x248], esi
and dword [edi + 0x14c], 0xffdfffff
or dword [edi + 0x238], 8
mov eax, dword [edi + 0x23c]
mov dword [edi + 0x23c], eax
jmp 0x45c7ac
xor eax, eax
mov byte [ebp - 0x23d9], al
jmp 0x45cc5d
xor edx, edx
cmp dword [edi + 4], edx
je 0x4b775b
mov ecx, dword [ebp - 0x23f8]
test cl, cl
je 0x45e1ec
cmp byte [0x5a4e22], dl
jne 0x45c7ac
mov eax, dword [ebp - 0x23ec]
mov esi, dword [eax]
mov eax, dword [0x5a303c]
add esi, 0xe
cmp eax, 5
je 0x4b4e33
cmp eax, 6
jne 0x45c7ac
test cl, cl
je 0x4b4e52
cmp byte [0x5a3008], dl
jne 0x45c7ac
mov eax, dword [ebp - 0x240c]
lea ecx, [ebp - 0x2320]
cmp eax, ecx
je 0x45e6ef
push edx
push eax
mov edx, 0x5a3058
push esi
mov ecx, dword [ebp - 0x2410]
call fcn.00470834
jmp 0x45c7ac
sbb eax, eax
xor ecx, ecx
inc ecx
or eax, ecx
jmp 0x45cf08
push 2
pop eax
mov dword [ebp - 0x23e4], eax
xor eax, eax
mov byte [ebp - 0x23d9], al
mov edi, dword [ebp - 0x23f4]
jmp 0x45cc57
push 0x40
pop eax
or word [esi + 0x9a], ax
xor edx, edx
cmp dword [edi + 4], edx
ja 0x4b4845
or dword [esi + 0x238], 4
mov eax, dword [esi + 0x23c]
mov dword [esi + 0x23c], eax
mov esi, dword [ebp - 0x23ec]
jmp 0x45c7b2
mov eax, 0x1000
xor edx, edx
or word [esi + 0x9a], ax
cmp dword [edi + 4], edx
ja 0x4b2bb8
mov eax, dword [esi + 0x238]
mov dword [esi + 0x238], eax
or dword [esi + 0x23c], 4
jmp 0x45e62d
xor eax, eax
inc eax
jmp 0x45cc51
push 3
pop eax
xor edx, edx
mov dword [esi + 0x184], eax
cmp dword [esi + 0x148], edx
jl 0x45c7ac
cmp dword [edi + 4], edx
ja 0x4b4248
push 0x10
mov eax, dword [esi + 0x238]
mov dword [esi + 0x238], eax
pop eax
or dword [esi + 0x23c], eax
jmp 0x45e62d
lea ecx, [ebp - 0x2320]
call fcn.0045c3b6
mov dword [ebp - 0x240c], eax
xor edx, edx
jmp 0x45e236
call fcn.005222b5
jmp 0x45c5d5
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
inc eax
xor edx, edx
mov dword [ebp - 0x23e4], eax
mov ecx, edi
lea eax, [ebp - 0x2404]
push eax
call fcn.004db8c1
test al, al
je 0x4b83f6
mov ecx, dword [ebp - 0x2404]
test ecx, ecx
je 0x4b2a7a
lea eax, [ecx - 1]
test ecx, eax
jne 0x4b2a7a
xor ecx, ecx
inc ecx
or dword [esi + 0x238], ecx
mov eax, dword [esi + 0x23c]
mov dword [esi + 0x23c], eax
mov eax, dword [ebp - 0x2404]
mov dword [esi + 0x74], eax
jmp 0x4b2a6f
mov byte [ebp - 0x23d9], cl
jmp 0x45cc57
push ecx
push 0x414988
jmp 0x4b2a88
push 0xfcb
jmp 0x4b2a9a
push dword [ebp - 0x240c]
call fcn.004fd88b
add esp, 0x10
jmp 0x45cc4f
mov eax, 0xf7ff
xor edx, edx
and word [esi + 0x9a], ax
cmp dword [edi + 4], edx
jbe 0x45e62d
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
mov ecx, 0x800
add esi, 8
push 0
pop edx
or word [eax + 0x9a], cx
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b2ac7
jmp 0x45e62d
push 2
pop eax
jmp 0x4b2b20
or dword [esi + 0x148], eax
jmp 0x45e1be
or dword [esi + 0x148], 4
jmp 0x45e1be
mov eax, 0xfdff
xor edx, edx
and word [esi + 0x9a], ax
cmp dword [edi + 4], edx
jbe 0x4b2b9d
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
mov ecx, 0x200
add esi, 8
push 0
pop edx
or word [eax + 0x9a], cx
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b2b4d
mov esi, dword [ebp - 0x23e8]
or dword [esi + 0x238], 0x4000000
jmp 0x45e621
or dword [esi + 0x148], 8
jmp 0x45e1be
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
mov ecx, 0xefff
add esi, 8
push 0
pop edx
and word [eax + 0x9a], cx
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b2bbb
mov esi, dword [ebp - 0x23e8]
jmp 0x45e64f
xor ecx, ecx
mov byte [0x5a4e0c], cl
jmp 0x4b2c22
mov byte [ebp - 0x23d9], cl
mov eax, ecx
jmp 0x45cc5d
xor eax, eax
inc eax
mov byte [0x5a4e0c], al
jmp 0x45e1be
xor eax, eax
inc eax
mov byte [0x5a5026], al
jmp 0x45e1be
xor eax, eax
inc eax
mov byte [0x5a502a], al
jmp 0x45e1be
xor ecx, ecx
inc ecx
mov byte [0x5a502b], cl
mov byte [0x5a5027], cl
jmp 0x45e1be
xor eax, eax
inc eax
mov byte [0x5a5108], al
jmp 0x45e1be
mov ecx, esi
call fcn.0047d753
test al, al
je 0x45cc4f
mov ecx, dword [ebp - 0x2434]
call fcn.004fda61
test al, al
je 0x45cc4f
push 2
pop eax
cmp dword [edi + 4], eax
jne 0x4b30c7
lea esi, [edi + 0xc]
xor eax, eax
cmp dword [esi - 4], eax
jne 0x4b30c7
mov ecx, dword [esi]
call fcn.00521356
test al, al
jne 0x4b30c7
mov eax, dword [ebp - 0x23e4]
add esi, 8
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b2ca8
mov eax, dword [ebp - 0x23f4]
lea ecx, [ebp - 0x2350]
mov edi, dword [edi + 0x14]
mov edx, dword [eax + 0xc]
call fcn.005210a9
xor eax, eax
lea ecx, [ebp - 0x2350]
mov dword [ebp - 4], eax
call fcn.00522464
test al, al
jne 0x4b92f7
push 0x427180
lea ecx, [ebp - 0x23d8]
call fcn.0043c1e9
xor ecx, ecx
mov edx, eax
inc ecx
mov byte [ebp - 4], cl
lea ecx, [ebp - 0x2350]
push ecx
lea ecx, [ebp - 0x2380]
call fcn.0052106f
push 3
pop eax
lea ecx, [ebp - 0x23d8]
mov byte [ebp - 4], al
call fcn.004507d1
mov eax, dword [ebp - 0x23e8]
lea ecx, [ebp - 0x2380]
mov esi, dword [eax + 0x89c]
call fcn.00522419
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.00456271
mov esi, eax
xor eax, eax
push eax
mov eax, dword [ebp - 0x23e8]
push edi
or dword [esi], 0x800000
mov ecx, dword [eax + 0x89c]
call fcn.00456271
mov ecx, 0x5a4be0
or dword [eax], 0x800000
mov dword [ebp - 0x24d8], eax
lea eax, [ebp - 0x24dc]
push eax
mov dword [ebp - 0x24dc], esi
call fcn.00522495
lea ecx, [ebp - 0x2380]
call fcn.004507d1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2350]
call fcn.004507d1
jmp 0x45cc49
xor eax, eax
inc eax
mov byte [0x5a4f0c], al
jmp 0x45e1be
xor eax, eax
inc eax
mov byte [0x5a502c], al
jmp 0x45e1be
xor ecx, ecx
mov byte [0x5a4ef0], cl
cmp dword [edi + 4], ecx
jbe 0x4b2a6f
lea esi, [edi + 0xc]
cmp dword [esi - 4], ecx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
inc eax
add esi, 8
mov byte [0x5a4ef0], al
mov eax, dword [ebp - 0x23e4]
inc eax
push 0
mov dword [ebp - 0x23e4], eax
pop ecx
cmp eax, dword [edi + 4]
jb 0x4b2df0
jmp 0x4b2a6f
xor eax, eax
inc eax
mov byte [0x5a5027], al
jmp 0x45e1be
xor eax, eax
inc eax
mov byte [0x5a5028], al
jmp 0x45e1be
mov ecx, esi
call fcn.0047d753
test al, al
je 0x45c67c
mov ecx, dword [ebp - 0x2434]
call fcn.004fda61
test al, al
je 0x45c67c
xor ecx, ecx
cmp dword [edi + 4], ecx
jbe 0x4b2a6f
lea eax, [edi + 0xc]
mov dword [ebp - 0x23fc], eax
cmp dword [eax - 4], ecx
jne 0x4b30c7
mov esi, dword [eax]
mov ecx, esi
mov dword [ebp - 0x2408], esi
call fcn.00521356
test al, al
jne 0x4b30c7
mov edi, dword [ebp - 0x23e8]
xor eax, eax
push eax
push esi
mov ecx, dword [edi + 0x8a0]
call fcn.00456271
mov edx, esi
mov dword [ebp - 0x2414], eax
lea ecx, [ebp - 0x2338]
or dword [eax], 0x800000
call fcn.005210a9
lea ecx, [ebp - 0x2338]
mov dword [ebp - 4], 4
call fcn.00522464
lea ecx, [ebp - 0x2338]
test al, al
jne 0x4b92fd
mov esi, dword [edi + 0x89c]
call fcn.00522419
xor ecx, ecx
push ecx
push eax
mov ecx, esi
call fcn.00456271
mov edi, eax
xor eax, eax
push eax
mov eax, dword [ebp - 0x23e8]
push dword [ebp - 0x2408]
or dword [edi], 0x800000
mov ecx, dword [eax + 0x89c]
call fcn.00456271
mov edx, dword [ebp - 0x2410]
mov esi, eax
mov ecx, dword [ebp - 0x23e8]
push esi
push edi
or dword [esi], 0x800000
call fcn.00536faf
mov edx, dword [ebp - 0x2410]
mov ecx, dword [ebp - 0x23e8]
push edi
push esi
call fcn.00536faf
mov eax, dword [ebp - 0x2414]
mov ecx, 0x5a4bd4
mov dword [ebp - 0x2520], eax
xor eax, eax
mov dword [ebp - 0x2524], edi
lea edi, [ebp - 0x251c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [ebp - 0x2524]
push eax
call fcn.0052249a
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2338]
call fcn.004507d1
mov ecx, dword [ebp - 0x23e4]
mov edi, dword [ebp - 0x23f4]
inc ecx
mov eax, dword [ebp - 0x23fc]
add eax, 8
mov dword [ebp - 0x23e4], ecx
push 0
cmp ecx, dword [edi + 4]
mov dword [ebp - 0x23fc], eax
pop ecx
jb 0x4b2e83
jmp 0x4b2a6f
xor edx, edx
mov byte [0x5a10f4], dl
mov eax, edx
mov byte [ebp - 0x23d9], dl
jmp 0x45cc5d
xor eax, eax
inc eax
mov byte [0x5a10f4], al
jmp 0x45e1be
push 0x20
pop eax
or dword [esi + 0x148], eax
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x4b3048
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x425df8
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop edx
and dword [eax + 0x148], 0xffffffdf
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b2ffd
mov esi, dword [ebp - 0x23e8]
or dword [esi + 0x238], 0x2000000
jmp 0x45e621
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [edi + 0xc]
mov ecx, edi
mov dword [ebp - 0x2414], eax
xor eax, eax
lea edx, [eax + 1]
call fcn.00474ab1
test al, al
je 0x4b3086
mov esi, dword [edi + 0x14]
mov dword [ebp - 0x23fc], esi
jmp 0x4b3090
xor eax, eax
mov esi, eax
mov dword [ebp - 0x23fc], eax
push 2
pop eax
mov edx, eax
mov ecx, edi
call fcn.00474ab1
test al, al
je 0x4b30e0
mov eax, dword [edi + 0x1c]
mov edi, eax
mov dword [ebp - 0x2408], edi
test eax, eax
je 0x4b30ec
push 0x425e08
push eax
mov dword [ebp - 0x2408], edi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b30ec
mov eax, dword [ebp - 0x2424]
push dword [eax + 4]
push 0x45d
push dword [ebp - 0x240c]
jmp 0x4b9320
xor ecx, ecx
mov edi, ecx
mov dword [ebp - 0x2408], edi
jmp 0x4b30ee
xor ecx, ecx
test esi, esi
jne 0x4b3154
mov edx, 0x100
lea eax, [ebp - 0x16e8]
push edx
push eax
push edx
lea eax, [ebp - 0x14e8]
push eax
push ecx
push ecx
push ecx
push ecx
push dword [ebp - 0x2414]
call dword [ebp - 0x2418]
add esp, 0x24
lea eax, [ebp - 0x16e8]
push eax
lea eax, [ebp - 0x14e8]
push eax
xor eax, eax
push eax
push eax
lea eax, [ebp - 0x1f08]
push 0x104
push eax
call dword [ebp - 0x2440]
add esp, 0x18
lea ecx, [ebp - 0x1f08]
call fcn.0044a9ea
mov esi, eax
mov dword [ebp - 0x23fc], esi
test edi, edi
mov edx, esi
setne cl
movzx ecx, cl
push ecx
mov ecx, dword [ebp - 0x2414]
call fcn.004df02f
call fcn.00458bd9
test al, al
je 0x4b3240
mov ecx, dword [ebp - 0x23f0]
call fcn.0045c3f0
xor edx, edx
mov edi, esi
mov dword [ebp - 0x23f0], edx
cmp dword [ebp - 0x2408], edx
je 0x4b31dd
push 2
lea ecx, [esi + 2]
pop edi
mov ax, word [esi]
add esi, edi
cmp ax, dx
jne 0x4b319a
sub esi, ecx
sar esi, 1
add esi, 9
mov ecx, esi
call fcn.004d35f1
push dword [ebp - 0x23fc]
mov edi, eax
push esi
push edi
call dword [ebp - 0x2438]
add esp, 0xc
push 0x425e18
push esi
push edi
call dword [ebp - 0x2420]
mov esi, dword [ebp - 0x23fc]
add esp, 0xc
xor edx, edx
push edx
push edx
push edi
push edx
mov edx, 0x425e2c
jmp 0x4b322a
sub esi, ecx
sar esi, 1
add esi, 9
mov ecx, esi
call fcn.004d35f1
push dword [ebp - 0x23fc]
mov edi, eax
push esi
push edi
call dword [ebp - 0x2438]
add esp, 0xc
push 0x425e18
push esi
push edi
call dword [ebp - 0x2420]
mov esi, dword [ebp - 0x23fc]
add esp, 0xc
xor edx, edx
push edx
push edx
push edi
push edx
mov edx, 0x425ea8
mov ecx, dword [ebp - 0x2414]
call fcn.0051c18c
cmp edi, esi
je 0x4b3240
mov ecx, edi
call fcn.0045c3f0
xor eax, eax
push 3
mov byte [ebp - 0x23d9], al
pop eax
mov dword [ebp - 0x23e4], eax
jmp 0x45e5fa
xor edx, edx
mov ecx, edi
call fcn.00474ab1
test al, al
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
mov esi, dword [eax]
add esi, 0x1e
mov ecx, esi
call fcn.004df0be
call fcn.00458bd9
test al, al
je 0x4b32f0
mov ecx, dword [ebp - 0x23f0]
call fcn.0045c3f0
xor eax, eax
mov ecx, esi
push eax
push eax
mov dword [ebp - 0x23f0], eax
push eax
cmp byte [ebp - 0x23f8], al
je 0x4b32b1
push esi
call fcn.004e1fc6
mov edx, 0x425e5c
mov ecx, eax
jmp 0x4b32b7
push eax
mov edx, 0x425e84
call fcn.0051c18c
jmp 0x4b32f0
xor eax, eax
inc eax
jmp 0x4b3301
xor eax, eax
inc eax
push 0x40
pop ecx
or dword [esi + 0x148], ecx
xor ecx, ecx
jmp 0x4b3308
push 2
pop eax
mov byte [ebp - 0x23d9], cl
jmp 0x45cc5d
xor edx, edx
mov ecx, edi
call fcn.00474ab1
test al, al
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
mov ecx, dword [eax]
add ecx, 0x24
call fcn.0045c3b6
mov esi, eax
push 0x3d
push esi
call fcn.004773ee
pop ecx
pop ecx
test eax, eax
je 0x4b30c7
cmp eax, esi
je 0x4b30c7
lea edx, [eax + 2]
xor ecx, ecx
cmp word [edx], cx
je 0x4b30c7
mov word [eax], cx
mov ecx, esi
call fcn.004df0fe
jmp 0x4b3376
cmp dword [0x5a30e8], 0
jmp 0x4b3385
je 0x45c7ac
mov ecx, dword [ebp - 0x23f0]
call fcn.0045c3f0
xor eax, eax
mov dword [ebp - 0x23f0], eax
jmp 0x45c7ac
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [edi + 0xc]
mov ecx, edi
mov dword [ebp - 0x2414], eax
xor eax, eax
lea edx, [eax + 1]
call fcn.00474ab1
test al, al
je 0x4b33d2
mov esi, dword [edi + 0x14]
mov dword [ebp - 0x23fc], esi
jmp 0x4b33dc
xor eax, eax
mov esi, eax
mov dword [ebp - 0x23fc], eax
push 2
pop eax
mov edx, eax
mov ecx, edi
call fcn.00474ab1
test al, al
je 0x4b34dc
mov eax, dword [edi + 0x1c]
mov edi, eax
mov dword [ebp - 0x2408], edi
test eax, eax
je 0x4b341b
push 0x425e08
push eax
mov dword [ebp - 0x2408], edi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
xor ecx, ecx
test esi, esi
jne 0x4b3483
mov edx, 0x100
lea eax, [ebp - 0x12e8]
push edx
push eax
push edx
lea eax, [ebp - 0x10e8]
push eax
push ecx
push ecx
push ecx
push ecx
push dword [ebp - 0x2414]
call dword [ebp - 0x2418]
add esp, 0x24
lea eax, [ebp - 0x12e8]
push eax
lea eax, [ebp - 0x10e8]
push eax
xor eax, eax
push eax
push eax
lea eax, [ebp - 0x1d00]
push 0x104
push eax
call dword [ebp - 0x2440]
add esp, 0x18
lea ecx, [ebp - 0x1d00]
call fcn.0044a9ea
mov esi, eax
mov dword [ebp - 0x23fc], esi
test edi, edi
mov edx, esi
setne cl
movzx ecx, cl
push ecx
mov ecx, dword [ebp - 0x2414]
call fcn.004df168
call fcn.00458bd9
test al, al
je 0x4b3240
mov ecx, dword [ebp - 0x23f0]
call fcn.0045c3f0
xor edx, edx
mov edi, esi
mov dword [ebp - 0x23f0], edx
cmp dword [ebp - 0x2408], edx
je 0x4b3221
push 2
lea ecx, [esi + 2]
pop edi
mov ax, word [esi]
add esi, edi
cmp ax, dx
jne 0x4b34cd
jmp 0x4b31e8
xor ecx, ecx
mov edi, ecx
mov dword [ebp - 0x2408], edi
jmp 0x4b341d
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
mov ecx, dword [eax]
add ecx, 6
call fcn.00526588
jmp 0x45c7ac
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x4b775b
test byte [esi + 0x148], 0x40
je 0x4b352c
cmp byte [ebp - 0x23f8], 0
jne 0x45c7ac
mov eax, dword [edi + 0xc]
push 0x40
pop edx
cmp word [eax], dx
jne 0x4b378e
xor eax, eax
mov ecx, edi
lea edx, [eax + 1]
call fcn.00474ab1
test al, al
je 0x4b775b
mov ecx, dword [edi + 0xc]
xor eax, eax
push eax
push 2
pop eax
add ecx, eax
mov edx, 0x425ed0
call fcn.0045b438
mov edi, eax
call fcn.00458bd9
test al, al
je 0x4b35a7
mov ecx, dword [ebp - 0x23f0]
call fcn.0045c3f0
xor ecx, ecx
mov eax, ecx
mov dword [ebp - 0x23f0], ecx
mov edx, ecx
cmp byte [ebp - 0x23f8], al
jne 0x4b359c
mov eax, dword [ebp - 0x23f4]
mov edx, 0x425edc
mov eax, dword [eax + 0x14]
push ecx
push ecx
push eax
push ecx
mov ecx, edi
call fcn.0051c18c
push 0x20
pop eax
push eax
mov edx, 0x4012a0
mov ecx, edi
call fcn.0042fcdc
mov dword [ebp - 0x2408], eax
pop ecx
test eax, eax
je 0x4b9325
xor ecx, ecx
mov esi, ecx
push eax
lea eax, [ebp - 0x8e8]
push 0x104
push eax
call dword [ebp - 0x24d0]
add esp, 0xc
test eax, eax
je 0x4b374b
lea ecx, [ebp - 0x8e8]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, word [ebp - 0x24cc]
jne 0x4b35f1
sub ecx, edx
sar ecx, 1
push 0xa
pop eax
cmp word [ebp + ecx*2 - 0x8ea], ax
jne 0x4b362e
lea ecx, [ecx*2 - 2]
cmp ecx, 0x208
jae 0x4b930b
xor eax, eax
mov word [ebp + ecx - 0x8e8], ax
lea eax, [ebp - 0x8e8]
push 0x3b
push eax
call fcn.004773ee
pop ecx
pop ecx
test eax, eax
je 0x4b3647
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x2454]
push eax
lea eax, [ebp - 0x8e8]
push 0x41d0e0
push eax
call dword [ebp - 0x2448]
add esp, 0xc
test eax, eax
je 0x4b3735
mov ecx, dword [ebp - 0x23f4]
push dword [ecx + 0x14]
push eax
call dword [ebp - 0x2444]
test eax, eax
jne 0x4b3735
lea eax, [ebp - 0x2454]
push eax
xor eax, eax
push 0x41d0e0
push eax
call dword [ebp - 0x2448]
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4b9310
lea eax, [ebp - 0x24e8]
push eax
push 0x41d4e0
push esi
call fcn.004782dc
xor ecx, ecx
mov dword [ebp - 0x23fc], eax
inc ecx
add esp, 0xc
cmp eax, ecx
jne 0x4b9310
mov eax, dword [ebp - 0x23e8]
mov ecx, dword [ebp - 0x24e8]
mov edx, dword [ebp - 0x24e4]
mov dword [eax + 0x6c], ecx
mov dword [eax + 0x70], edx
lea eax, [ebp - 0x2454]
push eax
xor eax, eax
push 0x41d0e0
push eax
call dword [ebp - 0x2448]
mov esi, eax
add esp, 0xc
test esi, esi
je 0x4b3745
push 0x5a1acc
push 0x425eec
push esi
call fcn.004782dc
xor ecx, ecx
add esp, 0xc
inc ecx
cmp eax, ecx
jne 0x4b9310
cmp dword [0x5a1acc], 0x80000000
ja 0x4b83f6
mov esi, dword [ebp - 0x23fc]
mov eax, dword [ebp - 0x2408]
test esi, esi
je 0x4b35ca
jmp 0x4b374b
mov esi, dword [ebp - 0x23fc]
mov ecx, dword [ebp - 0x2408]
call fcn.0042fefa
test esi, esi
je 0x4b376b
mov eax, dword [ebp - 0x23e8]
push 0x40
pop ecx
or dword [eax + 0x148], ecx
jmp 0x4b3782
mov eax, dword [ebp - 0x23f4]
push dword [eax + 0x14]
push 0x1066
push edi
call fcn.004fd88b
add esp, 0xc
mov ecx, edi
call fcn.0045c3f0
jmp 0x45e5e9
sub ecx, 1
je 0x4b37e2
sub ecx, 1
jne 0x4b9330
lea eax, [esi + 0x6c]
xor edx, edx
push eax
mov ecx, edi
call fcn.004db8ae
test al, al
je 0x4b83f6
xor eax, eax
mov ecx, edi
push 0x5a1acc
lea edx, [eax + 1]
call fcn.004db8c1
test al, al
je 0x4b83f6
cmp dword [0x5a1acc], 0x80000000
push 2
pop eax
ja 0x4b83f6
jmp 0x4b32f8
lea eax, [esi + 0x6c]
xor edx, edx
push eax
mov ecx, edi
call fcn.004db8ae
test al, al
je 0x4b83f6
jmp 0x4b32f5
mov eax, 0x80
xor ecx, ecx
or dword [esi + 0x148], eax
cmp dword [edi + 4], ecx
jbe 0x4b385b
lea esi, [edi + 0xc]
cmp dword [esi - 4], ecx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop ecx
and dword [eax + 0x148], 0xffffff7f
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b3811
jmp 0x4b385d
mov eax, ecx
xor ecx, ecx
inc ecx
jmp 0x4b3308
mov ecx, 0x200000
xor eax, eax
mov dword [0x5a1ac0], ecx
cmp dword [edi + 4], eax
jne 0x4b387f
inc eax
mov dword [0x5a5030], eax
jmp 0x4b38d5
xor eax, eax
xor edx, edx
inc eax
mov ecx, edi
mov dword [ebp - 0x23e4], eax
lea eax, [ebp - 0x2404]
push eax
call fcn.004db8c1
test al, al
je 0x4b83f6
mov eax, dword [ebp - 0x2404]
xor edx, edx
inc edx
cmp eax, edx
jbe 0x4b38bc
push 0xa
pop ecx
cmp eax, ecx
jb 0x4b38b8
mov eax, ecx
jmp 0x4b38be
cmp eax, edx
ja 0x4b38be
mov eax, edx
mov ecx, dword [0x5a1ac0]
mov dword [0x5a5030], eax
cmp ecx, 0x80000000
jae 0x45cc4f
xor edx, edx
cmp edx, eax
jae 0x4b38e6
add ecx, ecx
inc edx
cmp ecx, 0x80000000
jb 0x4b38d7
mov dword [0x5a1ac0], ecx
jmp 0x45cc4f
xor eax, eax
inc eax
mov byte [0x5a304c], al
jmp 0x45e1be
xor eax, eax
xor edx, edx
inc eax
or dword [esi + 0x8bc], eax
cmp dword [edi + 4], edx
jbe 0x45e62d
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop edx
and dword [eax + 0x8bc], 0xfffffffe
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b3915
jmp 0x45e62d
push 2
pop eax
or dword [esi + 0x8bc], eax
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x45c7ac
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop edx
and dword [eax + 0x8bc], 0xfffffffd
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b3976
jmp 0x45c7ac
or dword [esi + 0x8bc], 8
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x45c7ac
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop edx
and dword [eax + 0x8bc], 0xfffffff7
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b39d5
jmp 0x45c7ac
or dword [esi + 0x8bc], 4
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x45c7ac
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop edx
and dword [eax + 0x8bc], 0xfffffffb
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b3a34
jmp 0x45c7ac
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
lea eax, [ebp - 0x2404]
xor edx, edx
push eax
mov ecx, edi
call fcn.004db8c1
test al, al
je 0x4b83f6
mov eax, dword [ebp - 0x2404]
push 0x40
pop ecx
test eax, eax
je 0x4b3b08
cmp eax, ecx
ja 0x4b3b08
push 5
pop ecx
mov esi, 0x41ce54
lea edi, [ebp - 0x280]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
push 0x2a
push eax
lea eax, [ebp - 0x26a]
movsw word es:[edi], word [esi]
push eax
call sub.VCRUNTIME140.dll_memset
mov esi, dword [ebp - 0x23ec]
add esp, 0xc
mov eax, dword [esi]
add eax, 0x14
push eax
push 0x20
pop eax
push eax
lea eax, [ebp - 0x280]
push eax
call dword [ebp - 0x2420]
add esp, 0xc
lea ecx, [ebp - 0x280]
call fcn.005264f2
jmp 0x45c7b2
push 4
push ecx
push eax
push 0x41ce40
xor eax, eax
push 0x10af
push eax
call fcn.004fd88b
add esp, 0x18
jmp 0x45e62d
mov eax, dword [edi + 4]
test eax, eax
je 0x4b775b
add edi, 0xc
xor eax, eax
cmp dword [edi - 4], eax
jne 0x4b30c7
mov esi, dword [edi]
push 0x425ef4
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b3b56
inc eax
jmp 0x4b3b81
push 0x41abfc
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b3b6c
push 2
jmp 0x4b3b80
push 0x41abf0
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b3b8f
push 3
pop eax
mov esi, dword [ebp - 0x23e8]
mov dword [esi + 0x154], eax
jmp 0x4b3bbd
push 0x425efc
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov esi, dword [ebp - 0x23e8]
push 3
pop eax
mov dword [esi + 0x154], eax
xor eax, eax
inc eax
or dword [esi + 0x148], eax
mov eax, dword [ebp - 0x23f4]
add edi, 8
inc dword [ebp - 0x23e4]
mov ecx, dword [ebp - 0x23e4]
cmp ecx, dword [eax + 4]
jb 0x4b3b34
mov edi, eax
mov eax, 0x1000
or dword [esi + 0xaf0], eax
or dword [esi + 0x238], 0x8000000
jmp 0x4b3c00
push 0x10
pop eax
mov dword [esi + 0x78], ecx
or dword [esi + 0x238], eax
mov eax, dword [esi + 0x23c]
mov dword [esi + 0x23c], eax
jmp 0x45e6ad
mov eax, dword [edi + 4]
test eax, eax
je 0x4b775b
add edi, 0xc
xor eax, eax
cmp dword [edi - 4], eax
jne 0x4b30c7
mov esi, dword [edi]
push 0x425f24
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b3c41
inc eax
jmp 0x4b3c84
push 0x425f2c
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b3c57
push 2
jmp 0x4b3c6b
push 0x425f34
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b3c6e
push 3
pop eax
jmp 0x4b3c84
push 0x41ce6c
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
cmp byte [ebp - 0x23f8], 0
mov esi, dword [ebp - 0x23e8]
je 0x4b3cbf
mov ecx, dword [esi + 0x158]
cmp ecx, 0xffffffff
je 0x4b3cbf
cmp ecx, eax
je 0x4b3cbf
mov eax, dword [ebp - 0x23ec]
push dword [eax]
push 0x1099
push dword [ebp - 0x240c]
call fcn.004fd88b
add esp, 0xc
jmp 0x4b3cc5
mov dword [esi + 0x158], eax
mov eax, dword [ebp - 0x23f4]
add edi, 8
inc dword [ebp - 0x23e4]
mov ecx, dword [ebp - 0x23e4]
cmp ecx, dword [eax + 4]
jb 0x4b3c1f
mov edi, dword [ebp - 0x23f4]
jmp 0x45e6ad
mov eax, 0x200
or dword [esi + 0x148], eax
xor eax, eax
inc eax
mov byte [0x5a4f20], al
jmp 0x45e1be
mov eax, 0x800
xor ecx, ecx
or dword [esi + 0x148], eax
cmp dword [edi + 4], ecx
jbe 0x4b3d68
lea esi, [edi + 0xc]
cmp dword [esi - 4], ecx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop ecx
and dword [eax + 0x148], 0xfffff7ff
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b3d1b
jmp 0x4b3308
mov eax, ecx
jmp 0x4b3308
mov eax, dword [edi + 4]
test eax, eax
je 0x4b775b
add edi, 0xc
xor eax, eax
cmp dword [edi - 4], eax
jne 0x4b30c7
mov esi, dword [edi]
push 0x425f3c
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b3dae
mov eax, dword [ebp - 0x23e8]
mov dword [eax + 0x1b0], 0x8004
jmp 0x4b3e1c
push 0x425f48
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b3dd2
mov eax, dword [ebp - 0x23e8]
mov dword [eax + 0x1b0], 0x800c
jmp 0x4b3e1c
push 0x425f58
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b3df6
mov eax, dword [ebp - 0x23e8]
mov dword [eax + 0x1b0], 0x800d
jmp 0x4b3e1c
push 0x425f68
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
mov dword [eax + 0x1b0], 0x800e
mov eax, dword [ebp - 0x23f4]
add edi, 8
inc dword [ebp - 0x23e4]
mov ecx, dword [ebp - 0x23e4]
cmp ecx, dword [eax + 4]
jb 0x4b3d7d
jmp 0x4b3ce3
mov eax, dword [esi + 0x148]
mov ecx, 0x1000
and eax, 0xffffdfff
or eax, ecx
xor ecx, ecx
mov dword [esi + 0x148], eax
cmp dword [edi + 4], ecx
jbe 0x45e6ad
add edi, 0xc
cmp dword [edi - 4], ecx
jne 0x4b30c7
mov esi, dword [edi]
push 0x425f78
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b3e95
mov ecx, dword [ebp - 0x23e8]
mov eax, 0x2000
or dword [ecx + 0x148], eax
jmp 0x4b3ebb
push 0x41ce28
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
and dword [eax + 0x148], 0xffffefff
mov eax, dword [ebp - 0x23f4]
add edi, 8
inc dword [ebp - 0x23e4]
mov ecx, dword [ebp - 0x23e4]
push 0
cmp ecx, dword [eax + 4]
pop ecx
jb 0x4b3e65
jmp 0x4b3ce3
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
mov ecx, dword [eax]
add ecx, 0x2e
call fcn.004df1f7
jmp 0x45c7ac
mov eax, dword [edi + 4]
test eax, eax
je 0x4b775b
add edi, 0xc
xor eax, eax
cmp dword [edi - 4], eax
jne 0x4b30c7
mov esi, dword [edi]
push 0x425f8c
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b3f2e
push 2
jmp 0x4b3f42
push 0x425f94
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b3f45
push 3
pop eax
jmp 0x4b3f5c
push 0x41ce6c
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
inc eax
cmp byte [ebp - 0x23f8], 0
mov esi, dword [ebp - 0x23e8]
je 0x4b3f96
mov ecx, dword [esi + 0x15c]
test ecx, ecx
je 0x4b3f96
cmp ecx, eax
je 0x4b3f96
mov eax, dword [ebp - 0x23ec]
push dword [eax]
push 0x1099
push dword [ebp - 0x240c]
call fcn.004fd88b
add esp, 0xc
jmp 0x4b3f9c
mov dword [esi + 0x15c], eax
mov eax, dword [ebp - 0x23f4]
add edi, 8
inc dword [ebp - 0x23e4]
mov ecx, dword [ebp - 0x23e4]
cmp ecx, dword [eax + 4]
jb 0x4b3f0b
jmp 0x4b3ce3
mov eax, 0x400
xor ecx, ecx
or dword [esi + 0x148], eax
cmp dword [edi + 4], ecx
jbe 0x4b4022
lea esi, [edi + 0xc]
cmp dword [esi - 4], ecx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop ecx
and dword [eax + 0x148], 0xfffffbff
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b3fd4
mov esi, dword [ebp - 0x23e8]
or dword [esi + 0x238], 0x40000000
jmp 0x4b3c00
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
push 0x3d
mov esi, dword [eax]
add esi, 0x24
push esi
call fcn.004773ee
pop ecx
pop ecx
test eax, eax
je 0x4b30c7
cmp eax, esi
je 0x4b30c7
lea edi, [eax + 2]
xor ecx, ecx
cmp word [edi], cx
je 0x4b30c7
mov word [eax], cx
mov ecx, esi
call fcn.004562c9
mov ecx, edi
mov esi, eax
call fcn.004562c9
mov edi, eax
lea eax, [ebp - 0x2450]
push eax
push esi
mov esi, 0x5a36f8
mov ecx, esi
call fcn.004d9070
test eax, eax
je 0x4b40af
lea eax, [ebp - 0x24c8]
mov ecx, esi
push eax
push edi
call fcn.004d9070
test eax, eax
jne 0x4b40b4
call fcn.004fd4dc
push 0x20
pop eax
push eax
call fcn.00474df2
mov dword [ebp - 0x243c], eax
pop ecx
test eax, eax
je 0x4b40ef
xor ecx, ecx
mov dword [eax], ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov byte [eax + 0x10], cl
mov byte [eax + 0x11], cl
mov dword [eax + 0x14], ecx
mov dword [eax + 0x18], ecx
mov ecx, 0x1000
mov dword [eax + 0x1c], 0x5a19e0
mov dword [eax + 0xc], ecx
jmp 0x4b40f1
xor eax, eax
mov dword [ebp - 0x24b0], eax
mov ecx, 0x5a1420
lea eax, [ebp - 0x24c8]
push eax
lea eax, [ebp - 0x2450]
push eax
lea eax, [ebp - 0x2530]
push eax
call fcn.00516de9
lea eax, [ebp - 0x24b0]
mov ecx, 0x5a3740
push eax
lea eax, [ebp - 0x2450]
push eax
lea eax, [ebp - 0x253c]
push eax
call fcn.0052176a
jmp 0x45c7ac
mov eax, dword [edi + 4]
test eax, eax
je 0x4b775b
lea esi, [edi + 0xc]
xor eax, eax
cmp dword [esi - 4], eax
jne 0x4b30c7
push 0x425f9c
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e4]
xor edx, edx
inc edx
add esi, 8
inc eax
mov byte [0x5a5114], dl
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b4148
jmp 0x4b419b
mov byte [ebp - 0x23d9], dl
jmp 0x45cc5d
mov eax, 0x4000
xor ecx, ecx
or dword [esi + 0x148], eax
cmp dword [edi + 4], ecx
jbe 0x4b3d68
lea esi, [edi + 0xc]
cmp dword [esi - 4], ecx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop ecx
and dword [eax + 0x148], 0xffffbfff
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b41bf
jmp 0x4b3308
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
mov ecx, dword [eax]
add ecx, 6
call fcn.005264f2
jmp 0x45c7ac
add ecx, 4
xor edx, edx
cmp word [ecx], dx
je 0x4b423d
call fcn.00431a68
xor edx, edx
mov byte [ebp - 0x23d9], dl
jmp 0x45cc57
add edi, 0xc
cmp dword [edi - 4], edx
jne 0x4b30c7
mov esi, dword [edi]
push 0x425fb0
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b4286
mov esi, dword [ebp - 0x23e8]
push 3
pop eax
mov dword [esi + 0x184], eax
or dword [esi + 0x148], 0x80000000
jmp 0x4b4389
push 0x425fc4
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b42c1
mov esi, dword [ebp - 0x23e8]
push 3
jmp 0x4b42aa
mov esi, dword [ebp - 0x23e8]
push 2
pop eax
jmp 0x4b42b6
mov esi, dword [ebp - 0x23e8]
xor eax, eax
inc eax
mov dword [esi + 0x184], eax
jmp 0x4b4389
push 0x425fd0
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b42a2
push 0x425fe4
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b4302
mov esi, dword [ebp - 0x23e8]
push 0x40
mov eax, dword [esi + 0x238]
mov dword [esi + 0x238], eax
pop eax
or dword [esi + 0x23c], eax
jmp 0x4b42a8
push 0x41ce6c
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b4324
mov esi, dword [ebp - 0x23e8]
xor edx, edx
mov dword [esi + 0x184], edx
jmp 0x4b438b
push 0x425ff0
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b42ad
push 0x425ffc
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b4362
mov esi, dword [ebp - 0x23e8]
push 3
pop eax
mov dword [esi + 0x184], eax
mov eax, 0x4000
jmp 0x4b4383
push 0x426008
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov esi, dword [ebp - 0x23e8]
mov eax, 0x800
or dword [esi + 0x150], eax
xor edx, edx
mov ecx, dword [ebp - 0x23e4]
add edi, 8
mov eax, dword [ebp - 0x23f4]
inc ecx
mov dword [ebp - 0x23e4], ecx
cmp ecx, dword [eax + 4]
jb 0x4b424b
jmp 0x45e6d5
mov eax, dword [edi + 4]
test eax, eax
je 0x4b775b
add edi, 0xc
xor eax, eax
cmp dword [edi - 4], eax
jne 0x4b30c7
mov esi, dword [edi]
push 0x426018
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b43df
inc eax
jmp 0x4b43f4
push 0x403208
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b43fc
push 2
pop eax
or dword [0x5a4fa4], eax
jmp 0x4b4423
push 0x4030f4
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
mov ecx, 0x8000
or dword [eax + 0x148], ecx
mov ecx, dword [ebp - 0x23e4]
add edi, 8
mov eax, dword [ebp - 0x23f4]
inc ecx
mov dword [ebp - 0x23e4], ecx
cmp ecx, dword [eax + 4]
jb 0x4b43bd
jmp 0x45e62d
xor eax, eax
cmp dword [edi + 4], eax
je 0x45c7ac
mov eax, dword [ebp - 0x23ec]
mov eax, dword [eax]
add eax, 0x1e
mov dword [0x5a5104], eax
call fcn.00458bd9
test al, al
je 0x45c7ac
mov ecx, dword [ebp - 0x23f0]
call fcn.0045c3f0
mov ecx, dword [0x5a5104]
mov edx, 0x424750
jmp 0x4b4499
xor eax, eax
push eax
push eax
push eax
push eax
mov dword [ebp - 0x23f0], eax
jmp 0x4b44b4
xor ecx, ecx
mov edx, 0x426020
push ecx
push ecx
push ecx
push ecx
mov ecx, eax
call fcn.0051c18c
jmp 0x45c7ac
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
mov eax, dword [eax]
add eax, 8
mov dword [0x5a4ee0], eax
call fcn.00458bd9
test al, al
je 0x45c7ac
mov ecx, dword [ebp - 0x23f0]
call fcn.0045c3f0
mov ecx, dword [0x5a4ee0]
mov edx, 0x424774
jmp 0x4b4499
call fcn.00458bd9
test al, al
je 0x45c7ac
mov ecx, dword [ebp - 0x23f0]
call fcn.0045c3f0
xor eax, eax
lea ecx, [esi + 0x16]
mov dword [ebp - 0x23f0], eax
mov edx, 0x401e54
lea eax, [ebp - 0x242d]
push eax
call fcn.0045b438
cmp byte [ebp - 0x242d], 0
je 0x45c7ac
jmp 0x4b44a7
mov eax, dword [edi + 4]
test eax, eax
je 0x4b775b
add edi, 0xc
xor eax, eax
cmp dword [edi - 4], eax
jne 0x4b30c7
mov esi, dword [edi]
push 0x4247c0
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b4583
mov ecx, dword [ebp - 0x23e8]
and dword [ecx + 0x148], 0xfffeffff
jmp 0x4b45a9
push 0x4247d0
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
or dword [eax + 0x148], 0x40000
mov eax, dword [ebp - 0x23f4]
add edi, 8
inc dword [ebp - 0x23e4]
mov ecx, dword [ebp - 0x23e4]
cmp ecx, dword [eax + 4]
jb 0x4b4552
jmp 0x4b3ce3
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
mov ecx, dword [eax]
add ecx, 0x14
call fcn.005195ac
or dword [esi + 0x238], 0x200000
jmp 0x4b4603
mov eax, dword [ebp - 0x2404]
push 2
mov dword [0x5a50b4], eax
pop eax
or dword [esi + 0x238], eax
mov eax, dword [esi + 0x23c]
mov dword [esi + 0x23c], eax
jmp 0x45c7ac
or dword [esi + 0x148], 0x20000
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x4b4676
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop edx
and dword [eax + 0x148], 0xfffdffff
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b4628
mov esi, dword [ebp - 0x23e8]
or dword [esi + 0x238], 0x400000
jmp 0x45e621
cmp dword [edi + 4], 0
je 0x4b775b
xor eax, eax
inc eax
cmp dword [edi + 4], eax
jne 0x4b30c7
mov dword [ebp - 0x23e4], eax
xor edx, edx
lea eax, [ebp - 0x2404]
mov ecx, edi
push eax
call fcn.004db8c1
test al, al
je 0x4b83f6
mov eax, dword [ebp - 0x2404]
test eax, 0xffff0000
jne 0x4b83f6
mov word [esi + 0x1b8], ax
jmp 0x45cc4f
or dword [esi + 0x148], 0x80000
jmp 0x45e1be
or dword [esi + 0x148], 0x100000
jmp 0x45e1be
mov eax, 0x2000
xor edx, edx
or word [esi + 0x52], ax
cmp dword [edi + 4], edx
jbe 0x45e62d
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x42603c
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
mov ecx, 0x1000
add esi, 8
push 0
pop edx
or word [eax + 0x52], cx
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b470b
jmp 0x45e62d
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
mov ecx, dword [eax]
add ecx, 0x14
call fcn.0044a9ea
mov esi, eax
push 0x3d
push esi
call fcn.004773ee
pop ecx
pop ecx
test eax, eax
je 0x4b30c7
cmp eax, esi
je 0x4b30c7
lea ecx, [eax + 2]
xor edx, edx
cmp word [ecx], dx
je 0x4b30c7
mov word [eax], dx
xor eax, eax
mov edx, dword [ebp - 0x23e8]
push eax
push ecx
lea edx, [edx + 0xb10]
jmp 0x45e23d
or dword [esi + 0x148], 0x200000
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x45e62d
add edi, 0xc
cmp dword [edi - 4], edx
jne 0x4b30c7
mov esi, dword [edi]
push 0x42604c
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b47fa
mov ecx, dword [ebp - 0x23e8]
mov eax, 0x4000
or word [ecx + 0x52], ax
jmp 0x4b4822
push 0x42605c
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
mov ecx, 0x2000
or word [eax + 0x9a], cx
mov ecx, dword [ebp - 0x23e4]
add edi, 8
mov eax, dword [ebp - 0x23f4]
inc ecx
push 0
mov dword [ebp - 0x23e4], ecx
pop edx
cmp ecx, dword [eax + 4]
jb 0x4b47cc
jmp 0x45e62d
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
mov ecx, 0xffbf
add esi, 8
push 0
pop edx
and word [eax + 0x9a], cx
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b4848
mov esi, dword [ebp - 0x23e8]
jmp 0x45e61a
cmp dword [edi + 4], 0
je 0x4b775b
xor eax, eax
inc eax
cmp dword [edi + 4], eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23ec]
push 0x3d
mov esi, dword [eax]
add esi, 0x2a
push esi
call fcn.004773ee
pop ecx
pop ecx
lea ecx, [eax + 2]
test eax, eax
je 0x4b30c7
cmp eax, esi
je 0x4b30c7
xor edx, edx
cmp word [ecx], dx
je 0x4b30c7
mov word [eax], dx
lea edx, [ebp - 0x24f0]
call fcn.00478283
test al, al
je 0x4b30c7
mov ecx, dword [ebp - 0x2410]
xor eax, eax
push eax
push eax
push esi
mov edx, 0x5a4e10
call fcn.00470834
mov eax, dword [0x5a4e14]
mov ecx, dword [ebp - 0x24f0]
mov edx, dword [ebp - 0x24ec]
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], edx
jmp 0x45c7ac
push dword [ebp - 0x23f8]
mov edx, dword [ebp - 0x240c]
mov ecx, esi
call fcn.005219ec
jmp 0x45c7ac
xor eax, eax
inc eax
mov byte [0x5a501d], al
jmp 0x45c7ac
xor eax, eax
inc eax
mov byte [0x5a501d], al
mov byte [0x5a501c], al
jmp 0x45c7ac
mov eax, dword [esi + 0x148]
and eax, 0xfeffffff
or eax, 0x2000000
mov dword [esi + 0x148], eax
jmp 0x45e1be
or dword [esi + 0x148], 0x4000000
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x45c7ac
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop edx
and dword [eax + 0x148], 0xfbffffff
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b4997
jmp 0x45c7ac
or dword [esi + 0x148], 0x8000000
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x4b4a46
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop edx
and dword [eax + 0x148], 0xf7ffffff
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b49f8
mov esi, dword [ebp - 0x23e8]
mov eax, dword [esi + 0x238]
mov dword [esi + 0x238], eax
mov eax, 0x400
jmp 0x4b4a70
or dword [esi + 0x23c], eax
jmp 0x45c7ac
or dword [esi + 0x148], 0x20000000
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x45e62d
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop edx
and dword [eax + 0x148], 0xdfffffff
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b4a93
jmp 0x45e62d
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
lea eax, [ebp - 0x2404]
xor edx, edx
push eax
mov ecx, edi
call fcn.004db8c1
test al, al
je 0x4b83f6
jmp 0x4b45ef
test dword [edi + 0x14c], 0x200000
je 0x4b4b39
mov eax, dword [ebp - 0x23ec]
push 0x41b448
push dword [eax]
push 0x10a2
push dword [ebp - 0x2410]
call fcn.0052bce6
add esp, 0x10
jmp 0x45cec9
mov ecx, dword [ebp - 0x2410]
call fcn.00521e73
xor ecx, ecx
test al, al
je 0x4b4b78
mov eax, dword [edi + 0x238]
and eax, 8
or eax, ecx
je 0x4b4b78
mov eax, dword [ebp - 0x2410]
cmp dword [eax + 0x44], ecx
je 0x4b4b78
push dword [eax + 0x44]
push 0x1096
push eax
call fcn.0052bce6
add esp, 0xc
jmp 0x45cec9
mov eax, dword [edi + 0x238]
and eax, 8
or eax, ecx
je 0x4b4c41
mov eax, dword [edi + 0x240]
and eax, 8
or eax, ecx
jne 0x4b4c41
push esi
push dword [0x5a3050]
call dword [ebp - 0x24c0]
pop ecx
pop ecx
test eax, eax
je 0x45cec9
mov ecx, dword [0x5a3050]
call fcn.0044efd9
mov esi, eax
mov dword [ebp - 0x23fc], eax
push 2
xor edx, edx
pop edi
lea eax, [esi + 2]
mov cx, word [esi]
add esi, edi
cmp cx, dx
jne 0x4b4bcc
sub esi, eax
sar esi, 1
add esi, 7
lea ecx, [esi + esi]
call fcn.0043d6d0
push 0x426064
mov edi, eax
push esi
push edi
call dword [ebp - 0x2438]
add esp, 0xc
push dword [ebp - 0x23fc]
push esi
push edi
call dword [ebp - 0x2420]
mov eax, dword [ebp - 0x23ec]
add esp, 0xc
push edi
push dword [eax]
push 0x10a2
push dword [ebp - 0x2410]
call fcn.0052bce6
add esp, 0x10
mov ecx, edi
call fcn.0045c3f0
mov ecx, dword [ebp - 0x23fc]
call fcn.0045c3f0
mov esi, dword [ebp - 0x2408]
jmp 0x45cec9
mov eax, dword [ebp - 0x23f8]
jmp 0x45dc67
test al, al
je 0x45dc74
mov ecx, esi
call fcn.00450dc5
or dword [edi + 0x240], 8
mov ecx, esi
mov dword [0x5a3050], eax
mov eax, dword [edi + 0x244]
mov dword [edi + 0x244], eax
call fcn.0045c3f0
mov esi, dword [0x5a3050]
jmp 0x45dc7a
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x45e62d
add edi, 0xc
cmp dword [edi - 4], edx
jne 0x4b30c7
mov esi, dword [edi]
push 0x41ce6c
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b4cbd
xor edx, edx
mov dword [0x5a1db8], edx
jmp 0x4b4d3d
push 0x41ce78
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b4cdc
inc eax
jmp 0x4b4cd5
push 2
pop eax
mov dword [0x5a1db8], eax
jmp 0x4b4d3b
push 0x41ce88
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b4cd2
push 0x41ce94
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b4d04
push 3
jmp 0x4b4cd4
push 0x404fa4
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b4d1f
inc eax
mov byte [ebp - 0x2419], al
jmp 0x4b4d3b
push 0x41cea0
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
inc eax
mov byte [0x5a5122], al
xor edx, edx
mov ecx, dword [ebp - 0x23e4]
add edi, 8
mov eax, dword [ebp - 0x23f4]
inc ecx
mov dword [ebp - 0x23e4], ecx
cmp ecx, dword [eax + 4]
jb 0x4b4c93
jmp 0x45e62d
or dword [esi + 0x148], 0x400000
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x45e62d
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop edx
and dword [eax + 0x148], 0xffbfffff
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b4d79
jmp 0x45e62d
xor ecx, ecx
cmp dword [edi + 4], ecx
je 0x4b775b
mov eax, dword [edi + 0xc]
cmp word [eax], cx
je 0x4b4df6
push 0x5a1ac0
xor edx, edx
mov ecx, edi
call fcn.004db8c1
test al, al
jne 0x4b4df6
jmp 0x4b83f6
xor ecx, ecx
inc ecx
jmp 0x4b2c22
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov esi, dword [ebp - 0x23e0]
push 0x41ceb4
push dword [edi + 0xc]
call esi
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
xor edx, edx
inc edx
mov byte [0x5a304c], dl
mov eax, edx
jmp 0x4b419b
mov edx, dword [0x5a30a0]
xor eax, eax
push dword [ebp - 0x2410]
inc eax
mov ecx, esi
push eax
mov edx, dword [edx + 8]
call fcn.004636e7
jmp 0x45c7ac
push edx
push edx
mov edx, 0x5a4aa8
jmp 0x45e23d
mov eax, dword [esi + 0x238]
xor ecx, ecx
mov dword [esi + 0x238], eax
push 0x20
pop eax
or dword [esi + 0x23c], eax
mov byte [ebp - 0x23d9], cl
cmp dword [edi + 4], ecx
je 0x4b2c28
xor eax, eax
xor edx, edx
inc eax
mov ecx, edi
mov dword [ebp - 0x23e4], eax
lea eax, [ebp - 0x2404]
push eax
call fcn.004db8c1
test al, al
je 0x4b83f6
mov eax, dword [ebp - 0x2404]
mov dword [esi + 0x160], eax
jmp 0x45e6ad
xor edx, edx
xor ecx, ecx
inc edx
mov byte [0x5a4e2a], dl
cmp dword [edi + 4], ecx
jbe 0x4b4f08
lea esi, [edi + 0xc]
cmp dword [esi - 4], ecx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e4]
xor ecx, ecx
inc eax
mov byte [0x5a4e2a], cl
add esi, 8
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b4ec9
jmp 0x4b4f11
mov eax, ecx
jmp 0x4b419b
xor edx, edx
inc edx
jmp 0x4b419b
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
mov eax, dword [eax]
add eax, 6
mov dword [0x5a37b4], eax
jmp 0x45c7ac
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
inc eax
xor edx, edx
mov dword [ebp - 0x23e4], eax
mov ecx, edi
lea eax, [ebp - 0x2404]
push eax
call fcn.004db8c1
test al, al
je 0x4b83f6
mov ecx, dword [ebp - 0x2404]
test ecx, ecx
je 0x4b4f78
lea eax, [ecx - 1]
test ecx, eax
je 0x4b3bf4
push ecx
push 0x41b2c0
jmp 0x4b2a88
or dword [esi + 0x148], 0x40000000
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x4b4fe5
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop edx
and dword [eax + 0x148], 0xbfffffff
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b4f97
mov esi, dword [ebp - 0x23e8]
push 0x20
pop eax
jmp 0x4b4ff5
or dword [esi + 0x238], eax
jmp 0x45e621
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x4b50d3
add edi, 0xc
cmp dword [edi - 4], edx
jne 0x4b30c7
mov esi, dword [edi]
push 0x426074
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b5034
push 0x10
jmp 0x4b5031
push 2
pop eax
jmp 0x4b50a5
push 0x42608c
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b502f
push 0x403814
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b5067
mov esi, dword [ebp - 0x23e8]
or dword [esi + 0x198], 4
jmp 0x4b50b1
push 0x4260a0
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b508e
mov esi, dword [ebp - 0x23e8]
inc eax
mov byte [0x5a3004], al
or dword [esi + 0x198], 8
jmp 0x4b50b1
push 0x4260b4
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
inc eax
mov esi, dword [ebp - 0x23e8]
or dword [esi + 0x198], eax
mov ecx, dword [ebp - 0x23e4]
add edi, 8
mov eax, dword [ebp - 0x23f4]
inc ecx
push 0
mov dword [ebp - 0x23e4], ecx
pop edx
cmp ecx, dword [eax + 4]
jb 0x4b500e
cmp dword [esi + 0x198], edx
jne 0x45e62d
push 3
pop eax
mov dword [esi + 0x198], eax
jmp 0x45e62d
xor eax, eax
inc eax
xor ecx, ecx
mov byte [0x5a30f4], al
mov dword [0x5a4f14], ecx
jmp 0x4b2c22
and dword [esi + 0x14c], 0x7fffffff
jmp 0x45e1be
or dword [esi + 0x238], 0x20000000
xor ecx, ecx
mov eax, dword [esi + 0x23c]
mov dword [esi + 0x23c], eax
mov byte [ebp - 0x23d9], cl
cmp dword [edi + 4], ecx
je 0x4b2c28
xor eax, eax
xor edx, edx
inc eax
mov ecx, edi
mov dword [ebp - 0x23e4], eax
lea eax, [ebp - 0x2404]
push eax
call fcn.004db8c1
test al, al
je 0x4b83f6
mov eax, dword [ebp - 0x2404]
mov dword [esi + 0x164], eax
jmp 0x45e6ad
mov eax, dword [edi + 4]
test eax, eax
je 0x4b775b
add edi, 0xc
mov esi, dword [edi]
push 0x41ce28
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b519d
mov esi, dword [ebp - 0x23e8]
mov dword [esi + 0x19c], eax
jmp 0x4b552d
push 0x4260cc
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b51b9
mov eax, 0x200
jmp 0x4b54f1
push 0x4260e8
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
je 0x4b5527
push 0x426108
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b51e4
inc eax
jmp 0x4b521d
push 0x42612c
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b5208
mov esi, dword [ebp - 0x23e8]
and dword [esi + 0x14c], 0xfffffffe
jmp 0x4b552d
push 0x426154
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b522e
push 2
pop eax
mov esi, dword [ebp - 0x23e8]
or dword [esi + 0x14c], eax
jmp 0x4b552d
push 0x426188
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b5252
mov esi, dword [ebp - 0x23e8]
and dword [esi + 0x14c], 0xfffffffd
jmp 0x4b552d
push 0x4261c0
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b526e
mov eax, 0x1000
jmp 0x4b54f1
push 0x4261d0
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b5295
mov esi, dword [ebp - 0x23e8]
and dword [esi + 0x19c], 0xffffefff
jmp 0x4b552d
push 0x401d94
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b52ad
inc eax
jmp 0x4b54f1
push 0x4261e4
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b52d1
mov esi, dword [ebp - 0x23e8]
and dword [esi + 0x19c], 0xfffffffe
jmp 0x4b552d
push 0x4261f8
push esi
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b52f8
mov esi, dword [ebp - 0x23e8]
or dword [esi + 0x19c], eax
jmp 0x4b552d
mov esi, dword [ebp - 0x23e8]
mov ecx, dword [ebp - 0x23e4]
add edi, 8
mov eax, dword [ebp - 0x23f4]
inc ecx
mov dword [ebp - 0x23e4], ecx
cmp ecx, dword [eax + 4]
jb 0x4b5178
movzx eax, word [esi + 0x9a]
xor ecx, ecx
cmp dword [esi + 0x19c], ecx
jne 0x4b5564
and eax, 0xbfff
jmp 0x4b556e
mov ecx, 0x4000
or eax, ecx
movzx eax, ax
mov word [esi + 0x9a], ax
jmp 0x45e62d
call fcn.004fd4dc
jmp 0x45cea8
xor ecx, ecx
cmp dword [edi + 4], ecx
je 0x4b775b
cmp byte [ebp - 0x23f8], cl
je 0x4b55a3
cmp dword [esi + 0x1a8], ecx
jne 0x4b3305
mov eax, dword [edi + 0xc]
cmp word [eax], cx
je 0x4b55c5
lea eax, [esi + 0xac]
xor edx, edx
push eax
mov ecx, edi
call fcn.004db8ae
test al, al
je 0x4b83f6
xor ecx, ecx
push 2
pop eax
cmp dword [edi + 4], eax
jb 0x4b55f5
xor ecx, ecx
lea eax, [esi + 0xb4]
inc ecx
mov byte [ebp - 0x23fe], cl
mov edx, ecx
push eax
mov ecx, edi
call fcn.004db8ae
test al, al
je 0x4b83f6
push 3
pop eax
xor ecx, ecx
jmp 0x4b55fe
xor eax, eax
mov byte [ebp - 0x23fe], cl
inc eax
mov dword [esi + 0x1a8], eax
mov edx, dword [esi + 0xb4]
mov eax, edx
mov edi, dword [esi + 0xb8]
and eax, 3
or eax, ecx
je 0x4b5623
and edx, 0xfffffffc
xor edi, edi
add edx, 4
adc edi, ecx
mov dword [esi + 0xb4], edx
mov dword [esi + 0xb8], edi
mov ecx, dword [esi + 0xac]
mov eax, ecx
mov esi, dword [esi + 0xb0]
and eax, 3
or eax, 0
je 0x4b5651
xor esi, esi
and ecx, 0xfffffffc
push esi
add ecx, 4
pop eax
adc esi, eax
mov eax, dword [ebp - 0x23e8]
mov dword [eax + 0xac], ecx
mov dword [eax + 0xb0], esi
cmp esi, edi
ja 0x45e5e9
jb 0x4b5675
cmp ecx, edx
jae 0x45e5e9
cmp byte [ebp - 0x23fe], 0
jne 0x4b9349
push 2
mov dword [eax + 0xac], edx
pop ecx
mov dword [eax + 0xb0], edi
mov dword [eax + 0x1a8], ecx
jmp 0x45e5e9
push 0x20
pop eax
or word [esi + 0x9a], ax
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x4b5700
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
mov ecx, 0xffdf
add esi, 8
push 0
pop edx
and word [eax + 0x9a], cx
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b56b0
mov esi, dword [ebp - 0x23e8]
push 2
jmp 0x45e6d7
or dword [esi + 0x14c], 4
jmp 0x45e1be
or dword [esi + 0x14c], 8
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x45e62d
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e8]
add esi, 8
push 0
pop edx
and dword [eax + 0x14c], 0xfffffff7
mov eax, dword [ebp - 0x23e4]
inc eax
mov dword [ebp - 0x23e4], eax
cmp eax, dword [edi + 4]
jb 0x4b5728
jmp 0x45e62d
xor edx, edx
cmp dword [edi + 4], edx
jbe 0x45e62d
lea esi, [edi + 0xc]
cmp dword [esi - 4], edx
jne 0x4b30c7
push 0x41ce28
push dword [esi]
call dword [ebp - 0x23e0]
pop ecx
pop ecx
test eax, eax
jne 0x4b30c7
mov eax, dword [ebp - 0x23e4]
add esi, 8
inc eax
push 0
mov dword [ebp - 0x23e4], eax
pop edx
cmp eax, dword [edi + 4]
jb 0x4b5780
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
mov ecx, dword [eax]
add ecx, 0x16
call fcn.004562c9
lea ecx, [ebp - 0x250c]
push ecx
push eax
mov ecx, 0x5a3758
jmp 0x4b57fc
call fcn.004d9070
jmp 0x4b582a
test eax, eax
jne 0x45c7ac
xor edx, edx
cmp dword [edi + 4], edx
je 0x4b775b
mov eax, dword [ebp - 0x23ec]
mov eax, dword [eax]
add eax, 0xe
mov dword [0x5a37a4], eax
cmp dword [0x5a30e8], edx
je 0x45c7ac
xor edx, edx
cmp dword [edi + 4], edx
je 0x4b775b
xor eax, eax
cmp dword [edi + 4], eax
je 0x4b775b
mov eax, dword [ebp - 0x2424]
push dword [eax + 4]
push 0x47a
jmp 0x4b30d5
mov eax, dword [ebp - 0x2424]
push dword [eax + 4]
push 0x47b
jmp 0x4b30d5
mov esi, dword [ebp - 0x23ec]
push dword [esi]
push 0xfd8
push dword [ebp - 0x240c]
call fcn.004fd88b
mov cl, byte [ebp - 0x23d9]
add esp, 0xc
jmp 0x45cc72
test edi, edi
je 0x45c7e8
push edi
push 0x4271fc
push dword [0x5a352c]
call fcn.004fd8fd
add esp, 0xc
jmp 0x45c7e8
lea ecx, [ebp - 0x2350]
or dword [ebp - 4], 0xffffffff
call fcn.004507d1
jmp 0x4b30c7
call fcn.0047a54d
push esi
push 0x457
push edi
jmp 0x4b9320
call fcn.0047dc0b
push edi
push 0x450
jmp 0x4b30d5
mov eax, dword [ebp - 0x2424]
push 0xa
pop ecx
mov eax, dword [eax + 4]
add eax, ecx
push eax
push 0x457
jmp 0x4b30d5
push 0x426368
jmp 0x4b9355
push 0x4cd
xor eax, eax
push eax
jmp 0x4b9320
xor eax, eax
mov byte [0], al
jmp 0x45c81b