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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x47c4
call fcn.004c1c60
push ebx
push esi
push edi
xor ebx, ebx
mov dword [esp + 0x50], edx
push 0x40
lea eax, [esp + 0x33c]
mov dword [esp + 0x14], ebx
mov edi, ecx
push ebx
push eax
mov dword [esp + 0x60], edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x2b8]
push 0x40
push ebx
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x2f8]
xorps xmm0, xmm0
movaps xmmword [esp + 0x180], xmm0
push 0x40
push ebx
push eax
call sub.VCRUNTIME140.dll_memset
xor eax, eax
mov dword [esp + 0x84], 1
mov dword [esp + 0x78], eax
add esp, 0xc
mov dword [esp + 0x38], eax
xor esi, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x58]
mov dword [esp + 0xe4], eax
lea eax, [esp + 0x140]
mov dword [esp + 0xe8], eax
lea eax, [esp + 0xb8]
mov dword [esp + 0xec], eax
lea eax, [esp + 0xf8]
mov dword [esp + 0xf0], eax
lea eax, [esp + 0x170]
mov dword [esp + 0xf4], eax
lea eax, [esp + 0x150]
mov dword [esp + 0x88], eax
lea eax, [esp + 0x160]
mov dword [esp + 0x8c], eax
mov eax, dword [str._UInt]
mov dword [esp + 0x378], eax
mov ax, word [0x4cf908]
mov word [esp + 0x37c], ax
mov al, byte [0x4cf90a]
push 0x21b
mov byte [esp + 0x382], al
lea eax, [esp + 0x383]
push esi
push eax
mov dword [esp + 0x28], esi
mov dword [esp + 0x6c], 4
mov dword [esp + 0x154], 1
mov dword [esp + 0xcc], 1
mov dword [esp + 0x10c], 1
mov dword [esp + 0x184], 6
call sub.VCRUNTIME140.dll_memset
xor al, al
mov dword [esp + 0x90], ebx
add esp, 0xc
mov byte [esp + 0xf], al
cmp dword [esp + 0x50], 4
mov byte [esp + 0x20], al
jle 0x4a3e7f
mov eax, dword [edi + 0x10]
mov esi, dword [eax]
mov dword [esp + 0x18], esi
jmp 0x4a3fdd
mov ecx, dword [edi]
call fcn.004772b0
test eax, eax
je 0x4a3ea7
push 0x4c3c29
push str.Invalid_structure_definition.
mov ecx, 0x4dba98
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x28
call fcn.004c0cb5
mov esi, eax
add esp, 4
mov dword [esp + 0x18], esi
mov dword [esp + 0x7c], esi
push 0
push 0
push 0
mov dword [esi + 4], 1
mov dword [esi], vtable.Struct.0
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov word [esi + 0x14], bx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov dword [esi + 0x20], eax
mov byte [esi + 0x14], 1
test eax, eax
je 0x4a5c83
push 1
push edi
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x84]
push eax
call fcn.0049e140
add esp, 0x10
cmp dword [esp + 0x98], 1
je 0x4a3f71
mov eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a5b56.1
jmp dword [ecx*4 + 0x4a5ccc]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401640
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4dba98
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4c3c29
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4dba98
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x20
call fcn.004c0cb5
add esp, 4
mov dword [esp + 0x7c], eax
cmp dword [esp + 0x50], 1
mov dword [eax + 4], 1
mov dword [eax], vtable.Object.0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], ebx
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x90]
mov dword [esi + 0x18], eax
jle 0x4a3fcc
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.00476ef0
or eax, edx
je 0x4a3fcc
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.00476ef0
jmp 0x4a3fda
push dword [esi + 0x18]
push 8
push dword [esi + 0x20]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [esi + 0x24], eax
mov dword [esp + 0x158], ebx
mov dword [esp + 0x168], 6
mov dword [esp + 0x120], 6
mov eax, dword [esi + 0x1c]
mov dword [esp + 0x118], eax
mov eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a400e.1
jmp dword [ecx*4 + 0x4a5ce4]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401640
mov edi, eax
mov dword [esp + 0x14], eax
jmp 0x4a4035
mov edi, dword [eax]
jmp 0x4a4031
mov edi, 0x4c3c29
mov dword [esp + 0x14], edi
mov ecx, edi
mov al, byte [ecx]
cmp al, 0x20
je 0x4a4041
cmp al, 9
jne 0x4a4044
inc ecx
jmp 0x4a4037
mov edx, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov esi, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov dword [esp + 0x74], edx
mov edx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
mov dword [esp + 0x80], esi
mov dword [esp + 0x70], edx
test al, al
je 0x4a40ac
cmp al, 0x2d
je 0x4a4071
cmp al, 0x2b
jne 0x4a4078
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x4a40ac
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x4a4087
cmp al, 0x58
jne 0x4a40ac
movsx eax, byte [ecx + 2]
push eax
call edx
add esp, 4
test eax, eax
je 0x4a40ac
push 0x10
push 0
push edi
call dword [esp + 0x80]
mov esi, eax
add esp, 0xc
mov dword [esp + 0x34], esi
jmp 0x4a40b8
push edi
call esi
add esp, 4
mov dword [esp + 0x34], eax
mov esi, eax
mov eax, dword [0x4d70f4]
cmp byte [eax + 0xd5], 0x44
jne 0x4a40de
push 0xa
lea eax, [esp + 0x130]
push eax
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itoa]
add esp, 0xc
mov ecx, eax
jmp 0x4a4148
movzx eax, byte [esp + 0x12c]
test esi, esi
mov ecx, 0x2d
cmovs eax, ecx
lea ecx, [esp + 0x12d]
mov byte [esp + 0x12c], al
lea eax, [esp + 0x12c]
cmovs eax, ecx
lea esi, [eax + 1]
push 0x10
mov byte [eax], 0x30
mov eax, dword [esp + 0x38]
cdq
mov byte [esi], 0x78
xor eax, edx
inc esi
sub eax, edx
push esi
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itoa]
mov eax, dword [0x4d70f4]
add esp, 0xc
cmp byte [eax + 0xd5], 0x48
jne 0x4a413d
push esi
call dword [sym.imp.USER32.dll_CharUpperA]
mov esi, dword [esp + 0x34]
lea ecx, [esp + 0x12c]
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a4150
sub ecx, edx
cmp byte [ecx + edi], 0x3a
jne 0x4a4193
test esi, esi
jle 0x4a4193
lea ecx, [esp + 0x12c]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a4170
sub ecx, edx
inc edi
mov eax, esi
add edi, ecx
cdq
mov dword [esp + 0x14], edi
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edx
jmp 0x4a41cf
cmp dword [esp + 0x50], 5
jne 0x4a41bd
mov eax, dword [esp + 0x54]
xor edx, edx
mov ecx, dword [eax + 0xc]
call fcn.00476ef0
mov dword [esp + 0x34], eax
cdq
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edx
jmp 0x4a41cf
xor eax, eax
xorps xmm0, xmm0
mov dword [esp + 0x34], eax
movlpd qword [esp + 0xf8], xmm0
cmp byte [edi], bl
je 0x4a5b1c
mov eax, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbschr]
mov ecx, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcmp]
mov dword [esp + 0x24], eax
mov eax, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsstr]
mov dword [esp + 0xa4], eax
mov eax, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbscspn]
mov dword [esp + 0x40], eax
mov eax, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcpy]
mov dword [esp + 0x4c], eax
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__strtoi64]
mov dword [esp + 0xb0], eax
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__atoi64]
mov dword [esp + 0xb4], eax
mov eax, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbicmp]
mov dword [esp + 0xa8], eax
mov eax, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbscmp]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0xac], eax
nop dword [eax + eax]
mov ebx, dword [esp + 0x38]
push 2
push 0x4cf90c
push edi
call ecx
add esp, 0xc
test eax, eax
jne 0x4a429c
mov bl, byte [edi]
mov esi, edi
test bl, bl
je 0x4a427b
mov dl, bl
nop
mov ecx, 0x4cf0a4
mov al, 0xa
cmp dl, al
je 0x4a42c6
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4267
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4260
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a4280
sub ecx, edx
add edi, ecx
mov dword [esp + 0x14], edi
cmp byte [edi], 0
je 0x4a5b18
mov ebx, dword [esp + 0x38]
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4a42fb
mov ecx, str._n_r_t
mov al, 0xa
nop dword [eax + eax]
cmp dl, al
je 0x4a42f3
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a42b0
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a42a4
jmp 0x4a42fb
mov dword [esp + 0x14], edi
nop word [eax + eax]
mov ecx, 0x4cf0a4
mov al, 0xa
cmp bl, al
je 0x4a428f
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a42d7
mov bl, byte [edi + 1]
inc edi
mov dword [esp + 0x14], edi
test bl, bl
jne 0x4a42d0
xor edi, edi
jmp 0x4a428b
cmp edi, esi
je 0x4a4552
push 0x7b
push edi
call dword [esp + 0x2c]
add esp, 8
test eax, eax
je 0x4a4374
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4a4461
mov ecx, 0x4cf8fc
mov al, 0x3b
nop dword [eax]
cmp dl, al
je 0x4a4339
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4320
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4315
jmp 0x4a4461
push 0x7b
push edi
call dword [esp + 0x2c]
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x14]
mov esi, eax
mov dl, byte [eax]
test dl, dl
je 0x4a4370
mov ecx, 0x4cf8fc
mov al, 0x3b
cmp dl, al
je 0x4a4455
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4358
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4351
mov edi, dword [esp + 0x14]
mov dl, byte [edi]
cmp dl, 0x7d
jne 0x4a456d
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x10]
mov eax, ebx
mov ecx, dword [esp + edx*4 + 0x338]
sub eax, ecx
mov esi, dword [esp + edx*4 + 0x2b8]
cmp eax, esi
jle 0x4a43a6
mov esi, eax
mov dword [esp + edx*4 + 0x2b8], eax
cmp edx, 1
jle 0x4a4543
cmp byte [esp + edx + 0x17f], 0
je 0x4a4543
mov ecx, dword [esp + edx*4 + 0x2f8]
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x4a43da
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
mov dword [esp + 0x10], ebx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + edx*4 + 0x2f8]
mov eax, dword [esp + 0x28]
cmp ecx, eax
cmovg eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x6c]
cmp esi, eax
cmovg eax, esi
sub edx, 1
mov dword [esp + 0x6c], eax
mov dword [esp + 0x38], edx
jne 0x4a440e
add ebx, eax
mov dword [esp + 0x10], ebx
add edi, 1
mov byte [esp + 0xf], 0
mov byte [esp + 0x20], 0
mov esi, edi
mov dword [esp + 0x14], edi
je 0x4a4552
mov dl, byte [edi]
test dl, dl
je 0x4a4557
mov ecx, 0x4cf8fc
mov al, 0x3b
cmp dl, al
je 0x4a454e
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4438
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4431
jmp 0x4a4557
cmp edi, esi
jae 0x4a4370
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
mov eax, ecx
inc ecx
mov dword [esp + 0x38], ecx
test eax, eax
jne 0x4a4474
mov dword [esp + 0x6c], eax
mov esi, dword [esp + 0xa4]
push str.struct
push edi
call esi
add esp, 8
test eax, eax
je 0x4a44a6
push str.struct
push edi
call esi
push 0x7b
push edi
mov esi, eax
call dword [esp + 0x34]
add esp, 0x10
cmp esi, eax
jae 0x4a44a6
mov al, 1
jmp 0x4a44a8
xor al, al
mov esi, dword [esp + 0x34]
mov byte [esp + ebx + 0x181], al
test esi, esi
jle 0x4a44c5
mov ecx, edi
call fcn.0049ded0
movzx eax, al
cmp eax, esi
jg 0x4a44cf
mov ecx, edi
call fcn.0049ded0
movzx esi, al
mov ecx, dword [esp + 0x10]
mov eax, ecx
cdq
idiv esi
mov dword [esp + 0x1c], esi
test edx, edx
je 0x4a44ed
mov eax, esi
sub eax, edx
cdq
idiv esi
add ecx, edx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x28]
cmp eax, esi
jle 0x4a4509
mov edx, dword [esp + 0x34]
test edx, edx
jle 0x4a4503
mov esi, edx
cmp eax, edx
jg 0x4a4505
mov esi, eax
mov dword [esp + 0x1c], esi
mov dword [esp + ebx*4 + 0x33c], ecx
mov dword [esp + ebx*4 + 0x2fc], esi
mov dword [esp + ebx*4 + 0x2bc], 0
xor bl, bl
push 0x7b
push edi
mov dword [esp + 0x30], 0
mov byte [esp + 0x17], bl
mov byte [esp + 0x28], bl
call dword [esp + 0x2c]
add esp, 8
lea edi, [eax + 1]
jmp 0x4a4553
mov ebx, ecx
mov dword [esp + 0x10], ebx
jmp 0x4a43de
cmp edi, esi
jne 0x4a4557
inc edi
mov dword [esp + 0x14], edi
mov ebx, dword [esp + 0x10]
cmp byte [edi], 0
je 0x4a5b1c
mov ecx, dword [esp + 0x7c]
jmp 0x4a4240
xor eax, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], eax
mov esi, edi
test dl, dl
je 0x4a45a0
mov ecx, 0x4cf920
mov al, 0x7d
cmp dl, al
je 0x4a4610
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4588
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4581
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a45a5
sub ecx, edx
cmp ecx, 0x4000
ja 0x4a59dd
lea edx, [esp + 0x7c8]
mov ecx, edi
sub edx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x4a45c5
cmp byte [esp + 0x7c8], 0
je 0x4a4659
lea ecx, [esp + 0x7c8]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a45e6
sub ecx, edx
lea eax, [esp + ecx + 0x7c7]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4a4602
cmp cl, 9
jne 0x4a4646
lea edx, [esp + 0x7c8]
cmp eax, edx
je 0x4a464c
dec eax
jmp 0x4a45f6
push 0x4cf920
push edi
call dword [esp + 0x48]
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x4a59dd
push esi
lea eax, [esp + 0x7cc]
push edi
push eax
call dword [esp + 0x58]
add esp, 0xc
mov byte [esp + esi + 0x7c8], 0
jmp 0x4a45d2
mov byte [eax + 1], 0
jmp 0x4a4659
cmp cl, 0x20
je 0x4a4656
cmp cl, 9
jne 0x4a4659
mov byte [eax], 0
mov ebx, dword [esp + 0x24]
lea eax, [esp + 0x7c8]
push 0x2a
push eax
call ebx
add esp, 8
test eax, eax
je 0x4a46af
lea eax, [esp + 0x7c8]
push 0x3a
push eax
call ebx
add esp, 8
test eax, eax
jne 0x4a5a00
push eax
push eax
push 0x4001
push 0xffffffffffffffff
push 1
push 0x4c3c29
mov edx, 0x4cafcc
lea ecx, [esp + 0x7e0]
call fcn.004ac590
add esp, 0x18
mov dword [esp + 0x30], eax
lea eax, [esp + 0x7c8]
push 0x5b
push eax
call ebx
add esp, 8
test eax, eax
je 0x4a4802
lea eax, [esp + 0x7c8]
push 0x5b
push eax
call ebx
push 0x14
push eax
lea eax, [esp + 0xdc]
push eax
call dword [esp + 0x60]
add esp, 0x14
lea eax, [esp + 0xcc]
push 0x4cf944
push eax
call dword [esp + 0x48]
add esp, 8
lea ecx, [esp + 0xcd]
mov byte [esp + eax + 0xcd], 0
mov al, byte [ecx]
cmp al, 0x20
je 0x4a4711
cmp al, 9
jne 0x4a4714
inc ecx
jmp 0x4a4707
test al, al
je 0x4a475e
cmp al, 0x2d
je 0x4a4720
cmp al, 0x2b
jne 0x4a4727
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x4a475e
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x4a4736
cmp al, 0x58
jne 0x4a475e
movsx eax, byte [ecx + 2]
push eax
call dword [esp + 0x74]
add esp, 4
test eax, eax
je 0x4a475e
push 0x10
lea eax, [esp + 0xd1]
push 0
push eax
call dword [esp + 0xbc]
add esp, 0xc
jmp 0x4a4770
lea eax, [esp + 0xcd]
push eax
call dword [esp + 0xb8]
add esp, 4
push 0
push 0
push 0x4001
push 1
push 1
push 0x4c3c29
lea edx, [esp + 0xe4]
mov dword [esp + 0x44], eax
lea ecx, [esp + 0x7e0]
call fcn.004ac590
lea eax, [esp + 0x7e0]
push 0x5b
push eax
call ebx
add esp, 0x20
test eax, eax
jne 0x4a5a2a
mov bl, byte [esp + 0x7c8]
test bl, bl
je 0x4a4809
lea ecx, [esp + 0x7c8]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a47c5
sub ecx, edx
lea eax, [esp + ecx + 0x7c7]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4a47e1
cmp cl, 9
jne 0x4a47ef
lea edx, [esp + 0x7c8]
cmp eax, edx
je 0x4a47f5
dec eax
jmp 0x4a47d5
mov byte [eax + 1], 0
jmp 0x4a4802
cmp cl, 0x20
je 0x4a47ff
cmp cl, 9
jne 0x4a4809
mov byte [eax], 0
mov bl, byte [esp + 0x7c8]
lea esi, [esp + 0x7c8]
test bl, bl
je 0x4a485f
mov dl, bl
mov ecx, 0x4c98e4
mov al, 0x20
nop dword [eax]
cmp dl, al
je 0x4a4a17
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4820
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4816
lea edx, [esp + 0x7c8]
nop
mov ecx, 0x4cf920
mov al, 0x7d
cmp bl, al
je 0x4a4a17
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4847
mov bl, byte [edx + 1]
inc edx
test bl, bl
jne 0x4a4840
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4a4884
mov ecx, 0x4cf920
mov al, 0x7d
nop
cmp dl, al
je 0x4a488f
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4870
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4867
cmp dword [esp + 0x10], 0
je 0x4a4a17
lea ecx, [esp + 0x7c8]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a48a0
sub ecx, edx
cmp ecx, 0x125
ja 0x4a5a2a
push 0x125
lea eax, [esp + 0x7cc]
push eax
lea eax, [esp + 0x198]
push eax
call dword [esp + 0x58]
add esp, 0xc
lea eax, [esp + 0x190]
push 0x3a
push eax
call dword [esp + 0x2c]
mov esi, eax
add esp, 8
test esi, esi
je 0x4a496d
mov ebx, dword [esp + 0x20]
xor eax, eax
movzx ecx, bl
shr ecx, 3
mov byte [esi], 0
inc esi
cmp ecx, dword [esp + 0x3c]
mov ecx, esi
movzx ebx, bl
cmove ebx, eax
mov al, byte [ecx]
cmp al, 0x20
je 0x4a4912
cmp al, 9
jne 0x4a4915
inc ecx
jmp 0x4a4908
test al, al
je 0x4a4958
cmp al, 0x2d
je 0x4a4921
cmp al, 0x2b
jne 0x4a4928
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x4a4958
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x4a4937
cmp al, 0x58
jne 0x4a4958
movsx eax, byte [ecx + 2]
push eax
call dword [esp + 0x74]
add esp, 4
test eax, eax
je 0x4a4958
push 0x10
push 0
push esi
call dword [esp + 0x80]
add esp, 0xc
jmp 0x4a4963
push esi
call dword [esp + 0x84]
add esp, 4
add bl, al
mov byte [esp + 0xf], al
mov dword [esp + 0x20], ebx
or esi, 0xffffffff
cmp byte [esp + 0x190], 0
je 0x4a4b17
lea ecx, [esp + 0x190]
mov al, byte [ecx]
cmp al, 0x20
je 0x4a498f
cmp al, 9
jne 0x4a4992
inc ecx
jmp 0x4a4985
mov eax, ecx
lea edx, [esp + 0x190]
sub eax, edx
je 0x4a49c2
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4a49a4
sub esi, edx
lea eax, [esi + 1]
push eax
push ecx
lea eax, [esp + 0x198]
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
cmp byte [esp + 0x190], 0
je 0x4a4b17
cmp esi, 0xffffffff
jne 0x4a49e9
lea esi, [esp + 0x190]
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x4a49e0
sub esi, ecx
lea eax, [esp + esi + 0x18f]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4a49fc
cmp cl, 9
jne 0x4a4a0e
lea edx, [esp + 0x190]
cmp eax, edx
je 0x4a4d7e
dec eax
jmp 0x4a49f0
mov byte [eax + 1], 0
jmp 0x4a4b17
lea eax, [esp + 0x7c8]
push 0x4cb51c
push eax
call dword [esp + 0x48]
mov esi, eax
add esp, 8
cmp esi, 0x218
ja 0x4a5a2a
lea edi, [esp + 0x7c8]
mov dl, byte [edi]
cmp dl, 0x20
je 0x4a4a4c
cmp dl, 9
jne 0x4a4a4f
inc edi
jmp 0x4a4a40
test dl, dl
je 0x4a4a78
mov ecx, 0x4c98e4
mov al, 0x20
nop word [eax + eax]
cmp dl, al
je 0x4a4b83
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4a60
mov dl, byte [edi + 1]
inc edi
test dl, dl
jne 0x4a4a53
xor edi, edi
lea ecx, [esp + 0x378]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a4a84
sub ecx, edx
lea eax, [ecx - 2]
push eax
lea eax, [esp + 0x7cc]
push eax
lea eax, [esp + 0x381]
push eax
call dword [esp + 0xb4]
add esp, 0xc
test eax, eax
je 0x4a4ab9
xor al, al
mov byte [esp + 0xf], al
mov byte [esp + 0x20], al
push esi
lea eax, [esp + 0x7cc]
push eax
lea eax, [esp + 0x381]
push eax
call dword [esp + 0x58]
add esp, 0xc
mov word [esp + esi + 0x379], 0x20
mov bl, byte [esp + 0x7c8]
lea esi, [esp + 0x7c8]
test bl, bl
je 0x4a4b0f
mov dl, bl
nop
mov ecx, 0x4cfa8c
mov al, 0x20
cmp dl, al
je 0x4a4b91
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4af7
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4af0
mov byte [esp + 0x190], 0
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
cmp byte [edi + 0x14], 0
je 0x4a4b3d
cmp byte [esp + 0x190], 0
jne 0x4a4b3d
test ebx, ebx
mov eax, 1
cmove ebx, eax
mov dword [esp + 0x2c], ebx
lea eax, [esp + 0x190]
push 0x28
push eax
call dword [esp + 0x2c]
add esp, 8
test eax, eax
jne 0x4a5af2
lea eax, [esp + 0x378]
push str._bool
push eax
call dword [esp + 0xb4]
add esp, 8
test eax, eax
jne 0x4a4d94
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x4a4dd2
cmp byte [edi], 0x3a
je 0x4a4adb
jmp 0x4a4a7a
lea esi, [esp + 0x7c8]
mov dl, bl
nop word [eax + eax]
mov ecx, 0x4cfa8c
mov al, 0x20
cmp dl, al
je 0x4a4bbd
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4ba7
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4ba0
xor esi, esi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4a4bc0
sub esi, ecx
cmp esi, 0x11b
ja 0x4a5a2a
test edi, edi
je 0x4a4be7
cmp byte [edi], 0x3a
jne 0x4a4be7
lea edx, [esp + 0x7c8]
jmp 0x4a4c0d
lea edx, [esp + 0x7c8]
nop
mov ecx, 0x4cfa8c
mov al, 0x20
cmp bl, al
je 0x4a4c0d
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4bf7
mov bl, byte [edx + 1]
inc edx
test bl, bl
jne 0x4a4bf0
xor edx, edx
lea ecx, [esp + 0x190]
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x4a4c14
lea eax, [esp + 0x190]
push 0x3a
push eax
call dword [esp + 0x2c]
mov esi, eax
add esp, 8
test esi, esi
je 0x4a4cc9
mov eax, dword [esp + 0x20]
movzx ecx, al
shr ecx, 3
movzx ebx, al
xor eax, eax
mov byte [esi], 0
inc esi
cmp ecx, dword [esp + 0x3c]
mov ecx, esi
cmove ebx, eax
nop dword [eax]
mov al, byte [ecx]
cmp al, 0x20
je 0x4a4c6a
cmp al, 9
jne 0x4a4c6d
inc ecx
jmp 0x4a4c60
test al, al
je 0x4a4cb6
cmp al, 0x2d
je 0x4a4c79
cmp al, 0x2b
jne 0x4a4c80
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x4a4cb6
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x4a4c8f
cmp al, 0x58
jne 0x4a4cb6
movsx eax, byte [ecx + 2]
push eax
call dword [esp + 0x74]
add esp, 4
test eax, eax
je 0x4a4cb6
push 0x10
push 0
push esi
call dword [esp + 0x80]
add esp, 0xc
add bl, al
mov dword [esp + 0x20], ebx
jmp 0x4a4ccf
push esi
call dword [esp + 0x84]
add esp, 4
add bl, al
mov dword [esp + 0x20], ebx
jmp 0x4a4ccf
xor al, al
mov byte [esp + 0x20], al
or esi, 0xffffffff
mov byte [esp + 0xf], al
cmp byte [esp + 0x190], 0
je 0x4a4b17
lea ecx, [esp + 0x190]
nop dword [eax + eax]
mov al, byte [ecx]
cmp al, 0x20
je 0x4a4cfa
cmp al, 9
jne 0x4a4cfd
inc ecx
jmp 0x4a4cf0
mov eax, ecx
lea edx, [esp + 0x190]
sub eax, edx
je 0x4a4d2e
mov esi, ecx
lea edx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x4a4d10
sub esi, edx
lea eax, [esi + 1]
push eax
push ecx
lea eax, [esp + 0x198]
push eax
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
cmp byte [esp + 0x190], 0
je 0x4a4b17
cmp esi, 0xffffffff
jne 0x4a4d59
lea esi, [esp + 0x190]
lea ecx, [esi + 1]
nop dword [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4a4d50
sub esi, ecx
lea eax, [esp + esi + 0x18f]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4a4d70
cmp cl, 9
jne 0x4a4a0e
lea edx, [esp + 0x190]
cmp eax, edx
je 0x4a4d7e
dec eax
jmp 0x4a4d60
cmp cl, 0x20
je 0x4a4d8c
cmp cl, 9
jne 0x4a4b17
mov byte [eax], 0
jmp 0x4a4b17
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi*4 + 0x4d072c]
lea edx, [esp + 0x378]
call fcn.004ac1a0
test eax, eax
jne 0x4a4dbf
inc esi
cmp esi, 8
jl 0x4a4da0
jmp 0x4a4dc5
lea eax, [esi + 1]
movzx eax, ax
cwde
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4a5257
cmp dword [esp + 0x30], 0
je 0x4a4e59
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x4a4df2
cmp eax, 4
jge 0x4a4df2
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x4a4dfb
mov esi, 4
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x10]
mov eax, ecx
cdq
idiv esi
test edx, edx
je 0x4a4e15
mov eax, esi
sub eax, edx
cdq
idiv esi
add ecx, edx
mov dword [esp + 0x10], ecx
cmp esi, dword [esp + 0x28]
jle 0x4a4e1f
mov dword [esp + 0x28], esi
xor edx, edx
xor ebx, ebx
xor ecx, ecx
or edi, 0xffffffff
xor esi, esi
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4a4f72
mov al, byte [esp + 0xf]
test al, al
je 0x4a4f6e
cmp byte [esp + 0x20], al
mov eax, dword [esp + 0x10]
je 0x4a4f72
sub eax, dword [esp + 0x3c]
jmp 0x4a4f72
mov dl, byte [esp + 0xf]
test dl, dl
je 0x4a4e67
cmp byte [esp + 0x20], dl
jne 0x4a4e93
mov ecx, dword [esp + 0x34]
test ecx, ecx
jle 0x4a4e75
mov edi, ecx
cmp eax, ecx
jg 0x4a4e77
mov edi, eax
mov esi, dword [esp + 0x10]
mov eax, esi
cdq
idiv edi
test edx, edx
je 0x4a4e8d
mov eax, edi
sub eax, edx
cdq
idiv edi
add esi, edx
mov dl, byte [esp + 0xf]
jmp 0x4a4e9b
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov ecx, esi
cmp edi, eax
mov dword [esp + 0x10], esi
mov dword [esp + 0x1c], edi
cmovg eax, edi
mov dword [esp + 0x28], eax
test ebx, ebx
jne 0x4a4e1f
mov eax, dword [esp + 0x20]
movzx esi, dl
lea edx, [esp + 0x378]
mov dword [esp + 0x10], ecx
mov ecx, str._TCHAR_LPTSTR_LPCTSTR
movzx ebx, al
mov dword [esp + 0x48], esi
sub ebx, esi
call fcn.004ac1a0
test eax, eax
je 0x4a4ee7
xor edi, edi
jmp 0x4a4f2f
lea edx, [esp + 0x378]
mov ecx, str._LPWSTR_LPCWSTR_WCHAR
call fcn.004ac1a0
test eax, eax
je 0x4a4f03
mov edi, 0x4b0
jmp 0x4a4f1b
lea edx, [esp + 0x378]
mov ecx, str._CHAR_LPSTR_LPCSTR_UCHAR
call fcn.004ac1a0
neg eax
sbb edi, edi
neg edi
dec edi
mov eax, dword [esp + 0x10]
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x10], eax
lea edx, [esp + 0x378]
mov ecx, str._PTR_SHORT_INT_INT8_INT16_INT32_INT64_CHAR_ACCESS_MASK_PVOID_VOID_HALF_PTR_BOOL_LONG_LONG32_LONGLONG_LONG64_USN_INT_PTR_LONG_PTR_POINTER_64_POINTER_SIGNED_SIGNED_SSIZE_T_WPARAM___int64
call fcn.004ac1a0
lea edx, [esp + 0x378]
mov ecx, str._FLOAT_DOUBLE_PFLOAT_PDOUBLE
mov esi, eax
call fcn.004ac1a0
mov ecx, dword [esp + 0x48]
neg eax
sbb edx, edx
xor eax, eax
inc edx
test esi, esi
sete al
mov dword [esp + 0x44], eax
mov esi, eax
jmp 0x4a4e2a
mov eax, dword [esp + 0x10]
push ebx
mov ebx, dword [esp + 0x1c]
push ecx
push edi
push esi
mov esi, dword [esp + 0x3c]
mov ecx, ebx
push edx
push dword [esp + 0x50]
push esi
push eax
push dword [esp + 0x50]
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x1b8]
push eax
call fcn.004a5fa0
mov edi, eax
test edi, edi
je 0x4a5a54
mov edx, dword [esp + 0x30]
test esi, esi
jne 0x4a4fba
test edx, edx
je 0x4a521b
xor ecx, ecx
nop dword [eax]
mov al, byte [esp + ecx + 0x378]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x59f], al
test al, al
jne 0x4a4fc0
mov bl, byte [esp + 0x190]
test edx, edx
je 0x4a5044
test esi, esi
jne 0x4a4fed
test bl, bl
jne 0x4a4fed
lea eax, [esi + 1]
jmp 0x4a4fef
xor eax, eax
mov esi, edx
sub esi, eax
je 0x4a5040
nop word [eax + eax]
lea ecx, [esp + 0x5a0]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a5010
sub ecx, edx
je 0x4a5033
nop dword [eax + eax]
mov al, byte [esp + ecx + 0x5a0]
mov byte [esp + ecx + 0x5a1], al
sub ecx, 1
jne 0x4a5020
mov byte [esp + 0x5a1], 0x2a
sub esi, 1
jne 0x4a5000
mov esi, dword [esp + 0x2c]
test bl, bl
je 0x4a507e
test esi, esi
je 0x4a507e
lea edx, [esp + 0x5a0]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4a5056
sub edx, ecx
lea ecx, [esp + 0xcc]
mov eax, ecx
sub edx, eax
lea edx, [esp + edx + 0x5a0]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x4a5071
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x5a0]
push 1
lea edx, [esp + 0x8c]
mov dword [esp + 0x154], eax
push edx
mov ecx, dword [ebx + 0x1c]
lea edx, [esp + 0x120]
push 0
push edx
lea edx, [esp + 0x118]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x1c]
cmp eax, 1
jne 0x4a50c9
mov eax, dword [esp + 0x108]
mov dword [edi + 0x14], eax
jmp 0x4a5217
push 0x28
call fcn.004c0cb5
add esp, 4
mov dword [esp + 0x44], eax
lea edx, [esp + 0x88]
mov dword [eax + 4], 1
push 2
mov dword [eax], vtable.Struct.0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov word [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
push edx
mov dword [edi + 0x14], eax
lea edx, [esp + 0x120]
mov dword [esp + 0x168], eax
mov eax, dword [ebx + 0x1c]
push 1
push edx
lea edx, [esp + 0x118]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x1c]
mov eax, dword [esp + 0x108]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [edi + 0x14]
mov eax, dword [ebx + 0x1c]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov ecx, dword [edi + 0x14]
mov eax, dword [ebx + 0x20]
mov dword [ecx + 0x20], eax
cmp byte [esp + 0x190], 0
je 0x4a518d
test esi, esi
je 0x4a518d
cmp dword [esp + 0x30], 0
mov ecx, 4
jne 0x4a5188
mov ecx, dword [edi + 8]
imul ecx, esi
jmp 0x4a51aa
lea eax, [esp + 0x5a0]
push 0x2a
push eax
call dword [esp + 0x2c]
add esp, 8
mov ecx, 4
test eax, eax
jne 0x4a51aa
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0x14]
mov edx, 5
mov dword [eax + 0x18], ecx
lea eax, [esp + 0x5a0]
mov dword [esp + 0x60], 0
lea ecx, [esp + 0xe4]
mov dword [esp + 0x58], eax
mov dword [esp + 0xc0], 3
mov eax, dword [edi + 0x14]
mov dword [esp + 0x170], eax
call fcn.004a3d00
test eax, eax
je 0x4a5a54
mov eax, dword [ebx + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [edi + 0x14]
mov dword [eax + 0x1c], 0
mov dword [esp + 0x60], 4
mov dword [esp + 0xc0], 1
mov edx, dword [esp + 0x30]
mov bl, byte [esp + 0xf]
test bl, bl
je 0x4a522d
cmp byte [esp + 0x20], bl
jne 0x4a589b
mov ecx, dword [esp + 0x3c]
test edx, edx
mov ebx, dword [esp + 0x10]
mov eax, 4
cmovne ecx, eax
test esi, esi
mov eax, 1
cmovne eax, esi
imul ecx, eax
add ebx, ecx
mov dword [esp + 0x10], ebx
jmp 0x4a589f
lea eax, [esp + 0x378]
mov dword [esp + 0x58], 0
push 0x28
push eax
call dword [esp + 0x2c]
add esp, 8
test eax, eax
mov eax, dword [0x4d70f4]
je 0x4a539c
mov ebx, dword [eax + 0x94]
lea eax, [esp + 0x378]
mov esi, dword [esp + 0x40]
push 0x4cf974
push eax
call esi
add esp, 8
dec eax
mov ecx, 0x4dba98
push 0
push eax
lea eax, [esp + 0x381]
push eax
call fcn.0043cf60
mov ecx, dword [0x4d70f4]
mov dword [ecx + 0x94], eax
test eax, eax
je 0x4a5a63
lea edi, [esp + 0x378]
lea ecx, [edi + 1]
nop dword [eax]
mov al, byte [edi]
inc edi
test al, al
jne 0x4a52d0
lea eax, [esp + 0x378]
sub edi, ecx
push 0x4cf974
push eax
call esi
mov esi, eax
lea eax, [esp + 0x380]
push 0x4cf974
push eax
call dword [esp + 0x50]
add esp, 0x10
lea ecx, [esp + 0x379]
sub edi, esi
add eax, ecx
sub edi, 3
mov ecx, 0x4dba98
push 0
push 2
push 0
push edi
push eax
call fcn.0043ece0
mov edi, dword [esp + 0x18]
mov dword [esp + 0x58], eax
mov eax, dword [0x4d70f4]
mov dword [eax + 0x94], ebx
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x4a5374
lea ecx, [esp + 0x378]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a5343
push 0
sub ecx, edx
push 1
push 0
lea eax, [ecx - 2]
mov ecx, 0x4dba98
push eax
lea eax, [esp + 0x389]
push eax
call fcn.0043ece0
mov dword [esp + 0x58], eax
test eax, eax
je 0x4a5a8f
mov ebx, dword [esp + 0x30]
test ebx, ebx
jne 0x4a54fa
mov esi, dword [esp + 0x34]
test esi, esi
jle 0x4a5402
mov ecx, dword [esp + 0x60]
cmp ecx, 5
ja case.0x4a5395.1
jmp dword [ecx*4 + 0x4a5cfc]
cmp dword [eax + 0x94], 0
je 0x4a5331
lea ecx, [esp + 0x378]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a53b0
push 0
sub ecx, edx
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4dba98
push eax
lea eax, [esp + 0x389]
push eax
call fcn.0043ece0
mov dword [esp + 0x58], eax
jmp 0x4a5335
push 0
push 1
mov ecx, eax
call fcn.00401640
jmp case.0x4a5395.0
mov eax, 0x4c3c29
mov ecx, eax
call fcn.0049ded0
movzx eax, al
cmp eax, esi
jg 0x4a542e
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
cmp ecx, 5
ja case.0x4a540b.1
jmp dword [ecx*4 + 0x4a5d14]
push 0
push 1
mov ecx, eax
call fcn.00401640
jmp case.0x4a540b.0
mov eax, 0x4c3c29
mov ecx, eax
call fcn.0049ded0
movzx esi, al
mov ecx, dword [esp + 0x28]
cmp esi, ecx
mov al, byte [esp + 0xf]
cmovg ecx, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x28], ecx
test al, al
je 0x4a544d
cmp byte [esp + 0x20], al
jne 0x4a546d
mov edi, dword [esp + 0x10]
test edi, edi
je 0x4a5471
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x4a5471
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add edi, edx
mov dword [esp + 0x10], edi
jmp 0x4a5471
mov edi, dword [esp + 0x10]
mov eax, edi
cdq
mov dword [esp + 0x140], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x144], edx
cdq
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xe4]
push 4
push eax
lea eax, [esp + 0x98]
mov dword [esp + 0xc4], edx
push eax
lea eax, [esp + 0x84]
push eax
call fcn.0049e140
add esp, 0x10
cmp dword [esp + 0x98], 1
jne 0x4a5ab5
mov al, byte [esp + 0xf]
test al, al
je 0x4a54d7
cmp byte [esp + 0x20], al
jne 0x4a557b
mov ecx, dword [esp + 0x28]
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x4a557b
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add edi, edx
mov dword [esp + 0x10], edi
jmp 0x4a557b
push 1
lea eax, [esp + 0xe8]
xorps xmm0, xmm0
push eax
lea eax, [esp + 0x98]
movlpd qword [esp + 0x148], xmm0
push eax
lea eax, [esp + 0x84]
push eax
call fcn.0049e140
add esp, 0x10
cmp dword [esp + 0x98], 1
jne 0x4a5a8f
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x4a554b
cmp eax, 4
jge 0x4a554b
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x4a5554
mov esi, 4
mov dword [esp + 0x1c], esi
mov edi, dword [esp + 0x10]
mov eax, edi
cdq
idiv esi
test edx, edx
je 0x4a556e
mov eax, esi
sub eax, edx
cdq
idiv esi
add edi, edx
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x28]
cmp esi, eax
cmovg eax, esi
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x2c]
xor eax, eax
push 0
push 0
push 0xffff
push 0
push 0
test ebx, ebx
mov ecx, edi
cmovne ecx, eax
mov eax, dword [esp + 0xa4]
sub eax, ecx
mov ecx, dword [esp + 0x2c]
push eax
push esi
push edi
push ebx
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x1b8]
push eax
call fcn.004a5fa0
mov edi, eax
test edi, edi
je 0x4a5adf
xor edx, edx
nop word [eax + eax]
mov cl, byte [esp + edx + 0x378]
lea edx, [edx + 1]
mov byte [esp + edx + 0x59f], cl
test cl, cl
jne 0x4a55d0
test ebx, ebx
mov bl, byte [esp + 0x190]
je 0x4a5654
test esi, esi
jne 0x4a55fd
test bl, bl
jne 0x4a55fd
lea eax, [esi + 1]
jmp 0x4a55ff
xor eax, eax
mov esi, dword [esp + 0x30]
sub esi, eax
je 0x4a5650
nop word [eax + eax]
lea ecx, [esp + 0x5a0]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a5620
sub ecx, edx
je 0x4a5643
nop dword [eax + eax]
mov al, byte [esp + ecx + 0x5a0]
mov byte [esp + ecx + 0x5a1], al
sub ecx, 1
jne 0x4a5630
mov byte [esp + 0x5a1], 0x2a
sub esi, 1
jne 0x4a5610
mov esi, dword [esp + 0x2c]
test bl, bl
je 0x4a568e
test esi, esi
je 0x4a568e
lea edx, [esp + 0x5a0]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4a5666
sub edx, ecx
lea ecx, [esp + 0xcc]
mov eax, ecx
sub edx, eax
lea edx, [esp + edx + 0x5a0]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4a5681
mov ebx, dword [esp + 0x18]
lea eax, [esp + 0x5a0]
push 1
lea edx, [esp + 0x8c]
mov dword [esp + 0x154], eax
push edx
mov ecx, dword [ebx + 0x1c]
lea edx, [esp + 0x120]
push 0
push edx
lea edx, [esp + 0x118]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x1c]
cmp eax, 1
jne 0x4a56d9
mov eax, dword [esp + 0x108]
mov dword [edi + 0x14], eax
jmp 0x4a5844
push 0x28
call fcn.004c0cb5
add esp, 4
mov dword [esp + 0x44], eax
lea edx, [esp + 0x88]
mov dword [eax + 4], 1
push 2
mov dword [eax], vtable.Struct.0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov word [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
push edx
mov dword [edi + 0x14], eax
lea edx, [esp + 0x120]
mov dword [esp + 0x168], eax
mov eax, dword [ebx + 0x1c]
push 1
push edx
lea edx, [esp + 0x118]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x1c]
mov ecx, dword [edi + 0x14]
mov eax, dword [ebx + 0x1c]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov ecx, dword [edi + 0x14]
mov eax, dword [ebx + 0x20]
mov dword [ecx + 0x20], eax
cmp byte [esp + 0x190], 0
je 0x4a5790
test esi, esi
je 0x4a5790
cmp dword [esp + 0x30], 0
mov ecx, 4
jne 0x4a578b
mov ecx, dword [edi + 8]
imul ecx, esi
jmp 0x4a57ad
lea eax, [esp + 0x5a0]
push 0x2a
push eax
call dword [esp + 0x2c]
add esp, 8
mov ecx, 4
test eax, eax
jne 0x4a57ad
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0x14]
push 0x2a
mov dword [eax + 0x18], ecx
lea eax, [esp + 0x5a4]
push eax
call dword [esp + 0x2c]
add esp, 8
test eax, eax
jne 0x4a57dd
lea eax, [esp + 0x5a0]
push 0x5b
push eax
call dword [esp + 0x2c]
add esp, 8
test eax, eax
je 0x4a57f0
lea eax, [esp + 0x5a0]
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], eax
mov dword [esp + 0xc0], 3
lea ecx, [esp + 0xe4]
mov eax, dword [edi + 0x14]
mov edx, 5
mov dword [esp + 0x170], eax
call fcn.004a3d00
test eax, eax
je 0x4a5a54
mov eax, dword [ebx + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [edi + 0x14]
mov dword [eax + 0x1c], 0
mov dword [esp + 0x60], 4
mov dword [esp + 0xc0], 1
cmp dword [esp + 0x30], 0
je 0x4a5862
mov ebx, dword [esp + 0x10]
test esi, esi
mov eax, 1
cmovne eax, esi
lea ebx, [ebx + eax*4]
mov dword [esp + 0x10], ebx
jmp 0x4a589f
mov bl, byte [esp + 0xf]
test bl, bl
je 0x4a5870
cmp byte [esp + 0x20], bl
jne 0x4a589b
mov edx, dword [esp + 0x90]
test esi, esi
je 0x4a5890
mov ecx, edx
lea eax, [esi - 1]
sub ecx, dword [esp + 0x10]
imul ecx, eax
lea ebx, [edx + ecx]
mov dword [esp + 0x10], ebx
jmp 0x4a589f
xor ecx, ecx
lea ebx, [edx + ecx]
mov dword [esp + 0x10], ebx
jmp 0x4a589f
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4a58dc
mov ecx, dword [esp + edx*4 + 0x338]
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0x2b8]
jle 0x4a58c2
mov dword [esp + edx*4 + 0x2b8], eax
cmp byte [esp + edx + 0x180], 0
jne 0x4a58dc
mov ebx, ecx
mov byte [esp + 0x20], 0
mov dword [esp + 0x10], ebx
mov byte [esp + 0xf], 0
mov edi, dword [esp + 0x14]
push 0x7d
push edi
call dword [esp + 0x2c]
add esp, 8
test eax, eax
je 0x4a595f
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4a59ac
nop word [eax + eax]
mov ecx, 0x4cf8fc
mov al, 0x3b
cmp dl, al
je 0x4a5920
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a5907
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a5900
jmp 0x4a59ac
push 0x7d
push edi
call dword [esp + 0x2c]
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x14]
mov esi, eax
mov dl, byte [eax]
test dl, dl
je 0x4a595b
nop dword [eax + eax]
mov ecx, 0x4cf8fc
mov al, 0x3b
cmp dl, al
je 0x4a59a4
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a5947
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a5940
mov edi, dword [esp + 0x14]
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4a5984
mov ecx, 0x4cf8fc
mov al, 0x3b
nop
cmp dl, al
je 0x4a59c4
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a5970
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a5967
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a5990
sub ecx, edx
add edi, ecx
mov dword [esp + 0x14], edi
jmp 0x4a455b
cmp edi, esi
jae 0x4a595b
mov edi, dword [esp + 0x14]
push 0x4c87c8
push edi
call dword [esp + 0x48]
add esp, 8
add edi, eax
mov dword [esp + 0x14], edi
jmp 0x4a455b
push 0x4cf8fc
push edi
call dword [esp + 0x48]
inc edi
add esp, 8
add edi, eax
mov dword [esp + 0x14], edi
jmp 0x4a455b
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push edi
push str.Invalid_structure_definition.
mov ecx, 0x4dba98
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x7c8]
mov ecx, 0x4dba98
push eax
push str.Bit_field_must_not_be_a_pointer
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x7c8]
mov ecx, 0x4dba98
push eax
push str.Invalid_structure_definition.
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ecx + 0x94], ebx
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea eax, [esp + 0x378]
mov ecx, 0x4dba98
push eax
push str.Variable_was_not_found_in_function.
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea eax, [esp + 0x378]
mov ecx, 0x4dba98
push eax
push str.Invalid_structure_definition.
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x378]
mov ecx, 0x4dba98
push eax
push str.Invalid_structure_definition.
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi]
push edi
call dword [eax + 8]
lea eax, [esp + 0x190]
mov ecx, 0x4dba98
push eax
push str.Invalid_structure_definition.
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4a5b36
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x4a5b36
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
test ebx, ebx
jne 0x4a5b64
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a5b56.1
jmp dword [ecx*4 + 0x4a5d2c]
mov eax, dword [eax]
jmp 0x4a3f58
mov esi, dword [esp + 0x18]
cmp dword [esi + 0x18], ebx
je 0x4a5be5
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a5b81.1
jmp dword [ecx*4 + 0x4a5d44]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401640
push eax
push str.Invalid_structure_Length.
mov ecx, 0x4dba98
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [eax]
mov ecx, 0x4dba98
push eax
push str.Invalid_structure_Length.
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4c3c29
mov ecx, 0x4dba98
push eax
push str.Invalid_structure_Length.
call fcn.0044da60
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi + 0x14], 0
je 0x4a5c33
mov eax, dword [esi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [esi + 0xc], 1
jg 0x4a5c62
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x18]
cmp byte [eax], 0
jne 0x4a5c62
mov dword [esi + 0x1c], 0
cmp dword [esp + 0x50], 2
jle 0x4a5c33
mov ebx, dword [esp + 0x54]
mov ecx, dword [ebx + 8]
call fcn.004772b0
test eax, eax
je 0x4a5c33
mov ecx, dword [ebx + 8]
call fcn.004772b0
push eax
mov ecx, esi
call fcn.004a60d0
cmp dword [esi + 0xc], 1
jne 0x4a5c59
mov ecx, dword [esi + 8]
cmp dword [ecx + 0x18], 0
je 0x4a5c59
cmp word [ecx + 4], 0
jne 0x4a5c59
cmp dword [ecx + 0x10], 0
jne 0x4a5c59
cmp dword [ecx + 0x14], 0
jne 0x4a5c59
mov byte [esi + 0x15], 1
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
mov ecx, esi
call fcn.004a5d80
mov dword [esi + 0x1c], eax
test eax, eax
jne 0x4a5c0c
mov eax, dword [esi]
push esi
call dword [eax + 8]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a5c93.1
jmp dword [ecx*4 + 0x4a5d5c]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401640
jmp 0x4a5cb0
mov eax, dword [eax]
jmp 0x4a5cb0
mov eax, 0x4c3c29
push eax
push str.Out_of_memory.
mov ecx, 0x4dba98
call fcn.0044da60
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret