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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x47c4
call fcn.004b4520
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 [0x4c1204]
mov word [esp + 0x37c], ax
mov al, byte [0x4c1206]
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 0x49688f
mov eax, dword [edi + 0x10]
mov esi, dword [eax]
mov dword [esp + 0x18], esi
jmp 0x496a29
mov eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 6
je 0x4968bb
cmp ecx, 4
jne 0x4968f3
mov eax, dword [eax]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x4968ac
mov edx, dword [eax + 0xc]
jmp 0x4968ae
mov edx, eax
test byte [edx + 0x15], 2
je 0x4968dc
test cl, cl
jne 0x4968bb
mov eax, dword [eax + 0xc]
cmp dword [eax], ebx
je 0x4968f3
push 0x4b6ba9
push str.Invalid_structure_definition.
mov ecx, 0x4cc848
call fcn.0043ee10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test cl, cl
jne 0x4968e5
mov ecx, dword [eax + 0xc]
jmp 0x4968e7
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x4968f3
push eax
call fcn.0043f510
push 0x28
call fcn.004b37d4
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 0x49875f
push 1
push edi
lea eax, [esp + 0x98]
push eax
lea eax, [esp + 0x84]
push eax
call fcn.00490b00
add esp, 0x10
cmp dword [esp + 0x98], 1
je 0x4969bd
mov eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x49859a.1
jmp dword [ecx*4 + 0x4987a8]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401550
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4cc848
call fcn.0043ee10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4b6ba9
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4cc848
call fcn.0043ee10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x20
call fcn.004b37d4
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 0x496a18
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.004686d0
or eax, edx
je 0x496a18
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.004686d0
jmp 0x496a26
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.0x496a5a.1
jmp dword [ecx*4 + 0x4987c0]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401550
mov edi, eax
mov dword [esp + 0x14], eax
jmp 0x496a81
mov edi, dword [eax]
jmp 0x496a7d
mov edi, 0x4b6ba9
mov dword [esp + 0x14], edi
mov ecx, edi
mov al, byte [ecx]
cmp al, 0x20
je 0x496a8d
cmp al, 9
jne 0x496a90
inc ecx
jmp 0x496a83
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 0x496af8
cmp al, 0x2d
je 0x496abd
cmp al, 0x2b
jne 0x496ac4
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x496af8
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x496ad3
cmp al, 0x58
jne 0x496af8
movsx eax, byte [ecx + 2]
push eax
call edx
add esp, 4
test eax, eax
je 0x496af8
push 0x10
push 0
push edi
call dword [esp + 0x80]
mov esi, eax
add esp, 0xc
mov dword [esp + 0x34], esi
jmp 0x496b04
push edi
call esi
add esp, 4
mov dword [esp + 0x34], eax
mov esi, eax
mov eax, dword [0x4c8024]
cmp byte [eax + 0xd5], 0x44
jne 0x496b2a
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 0x496b94
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 [0x4c8024]
add esp, 0xc
cmp byte [eax + 0xd5], 0x48
jne 0x496b89
push esi
call dword [sym.imp.USER32.dll_CharUpperA]
mov esi, dword [esp + 0x34]
lea ecx, [esp + 0x12c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x496b97
sub ecx, edx
cmp byte [ecx + edi], 0x3a
jne 0x496bd7
test esi, esi
jle 0x496bd7
lea ecx, [esp + 0x12c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x496bb4
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 0x496c13
cmp dword [esp + 0x50], 5
jne 0x496c01
mov eax, dword [esp + 0x54]
xor edx, edx
mov ecx, dword [eax + 0xc]
call fcn.004686d0
mov dword [esp + 0x34], eax
cdq
mov dword [esp + 0xf8], eax
mov dword [esp + 0xfc], edx
jmp 0x496c13
xor eax, eax
xorps xmm0, xmm0
mov dword [esp + 0x34], eax
movlpd qword [esp + 0xf8], xmm0
cmp byte [edi], bl
je 0x498560
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]
mov ebx, dword [esp + 0x38]
push 2
push 0x4c1208
push edi
call ecx
add esp, 0xc
test eax, eax
jne 0x496cdc
mov bl, byte [edi]
mov esi, edi
test bl, bl
je 0x496cbb
mov dl, bl
nop
mov ecx, 0x4c090c
mov al, 0xa
cmp dl, al
je 0x496d06
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496ca7
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496ca0
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x496cc0
sub ecx, edx
add edi, ecx
mov dword [esp + 0x14], edi
cmp byte [edi], 0
je 0x49855c
mov ebx, dword [esp + 0x38]
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x496d3b
mov ecx, str._n_r_t
mov al, 0xa
nop dword [eax + eax]
cmp dl, al
je 0x496d33
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496cf0
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496ce4
jmp 0x496d3b
mov dword [esp + 0x14], edi
nop word [eax + eax]
mov ecx, 0x4c090c
mov al, 0xa
cmp bl, al
je 0x496ccf
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496d17
mov bl, byte [edi + 1]
inc edi
mov dword [esp + 0x14], edi
test bl, bl
jne 0x496d10
xor edi, edi
jmp 0x496ccb
cmp edi, esi
je 0x496f92
push 0x7b
push edi
call dword [esp + 0x2c]
add esp, 8
test eax, eax
je 0x496db4
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x496ea1
mov ecx, 0x4c11f8
mov al, 0x3b
nop dword [eax]
cmp dl, al
je 0x496d79
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496d60
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496d55
jmp 0x496ea1
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 0x496db0
mov ecx, 0x4c11f8
mov al, 0x3b
cmp dl, al
je 0x496e95
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496d98
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496d91
mov edi, dword [esp + 0x14]
mov dl, byte [edi]
cmp dl, 0x7d
jne 0x496fad
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 0x496de6
mov esi, eax
mov dword [esp + edx*4 + 0x2b8], eax
cmp edx, 1
jle 0x496f83
cmp byte [esp + edx + 0x17f], 0
je 0x496f83
mov ecx, dword [esp + edx*4 + 0x2f8]
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x496e1a
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 0x496e4e
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 0x496f92
mov dl, byte [edi]
test dl, dl
je 0x496f97
mov ecx, 0x4c11f8
mov al, 0x3b
cmp dl, al
je 0x496f8e
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496e78
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496e71
jmp 0x496f97
cmp edi, esi
jae 0x496db0
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x38]
mov eax, ecx
inc ecx
mov dword [esp + 0x38], ecx
test eax, eax
jne 0x496eb4
mov dword [esp + 0x6c], eax
mov esi, dword [esp + 0xa4]
push str.struct
push edi
call esi
add esp, 8
test eax, eax
je 0x496ee6
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 0x496ee6
mov al, 1
jmp 0x496ee8
xor al, al
mov esi, dword [esp + 0x34]
mov byte [esp + ebx + 0x181], al
test esi, esi
jle 0x496f05
mov ecx, edi
call fcn.00490890
movzx eax, al
cmp eax, esi
jg 0x496f0f
mov ecx, edi
call fcn.00490890
movzx esi, al
mov ecx, dword [esp + 0x10]
mov eax, ecx
cdq
idiv esi
mov dword [esp + 0x1c], esi
test edx, edx
je 0x496f2d
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 0x496f49
mov edx, dword [esp + 0x34]
test edx, edx
jle 0x496f43
mov esi, edx
cmp eax, edx
jg 0x496f45
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 0x496f93
mov ebx, ecx
mov dword [esp + 0x10], ebx
jmp 0x496e1e
cmp edi, esi
jne 0x496f97
inc edi
mov dword [esp + 0x14], edi
mov ebx, dword [esp + 0x10]
cmp byte [edi], 0
je 0x498560
mov ecx, dword [esp + 0x7c]
jmp 0x496c80
xor eax, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], eax
mov esi, edi
test dl, dl
je 0x496fe0
mov ecx, 0x4c121c
mov al, 0x7d
cmp dl, al
je 0x49705a
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496fc8
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496fc1
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x496fe5
sub ecx, edx
cmp ecx, 0x4000
ja 0x49841d
lea edx, [esp + 0x7c8]
mov ecx, edi
sub edx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x497005
cmp byte [esp + 0x7c8], 0
je 0x4970a3
lea ecx, [esp + 0x7c8]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x497030
sub ecx, edx
lea eax, [esp + ecx + 0x7c7]
mov cl, byte [eax]
cmp cl, 0x20
je 0x49704c
cmp cl, 9
jne 0x497090
lea edx, [esp + 0x7c8]
cmp eax, edx
je 0x497096
dec eax
jmp 0x497040
push 0x4c121c
push edi
call dword [esp + 0x48]
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x49841d
push esi
lea eax, [esp + 0x7cc]
push edi
push eax
call dword [esp + 0x58]
add esp, 0xc
mov byte [esp + esi + 0x7c8], 0
jmp 0x497012
mov byte [eax + 1], 0
jmp 0x4970a3
cmp cl, 0x20
je 0x4970a0
cmp cl, 9
jne 0x4970a3
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 0x4970f9
lea eax, [esp + 0x7c8]
push 0x3a
push eax
call ebx
add esp, 8
test eax, eax
jne 0x498440
push eax
push eax
push 0x4001
push 0xffffffffffffffff
push 1
push 0x4b6ba9
mov edx, 0x4bc8e8
lea ecx, [esp + 0x7e0]
call fcn.0049ef20
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 0x49724d
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 0x4c1240
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 0x49715b
cmp al, 9
jne 0x49715e
inc ecx
jmp 0x497151
test al, al
je 0x4971a8
cmp al, 0x2d
je 0x49716a
cmp al, 0x2b
jne 0x497171
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x4971a8
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x497180
cmp al, 0x58
jne 0x4971a8
movsx eax, byte [ecx + 2]
push eax
call dword [esp + 0x74]
add esp, 4
test eax, eax
je 0x4971a8
push 0x10
lea eax, [esp + 0xd1]
push 0
push eax
call dword [esp + 0xbc]
add esp, 0xc
jmp 0x4971ba
lea eax, [esp + 0xcd]
push eax
call dword [esp + 0xb8]
add esp, 4
push 0
push 0
push 0x4001
push 1
push 1
push 0x4b6ba9
lea edx, [esp + 0xe4]
mov dword [esp + 0x44], eax
lea ecx, [esp + 0x7e0]
call fcn.0049ef20
lea eax, [esp + 0x7e0]
push 0x5b
push eax
call ebx
add esp, 0x20
test eax, eax
jne 0x49846a
mov bl, byte [esp + 0x7c8]
test bl, bl
je 0x497254
lea ecx, [esp + 0x7c8]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x497210
sub ecx, edx
lea eax, [esp + ecx + 0x7c7]
mov cl, byte [eax]
cmp cl, 0x20
je 0x49722c
cmp cl, 9
jne 0x49723a
lea edx, [esp + 0x7c8]
cmp eax, edx
je 0x497240
dec eax
jmp 0x497220
mov byte [eax + 1], 0
jmp 0x49724d
cmp cl, 0x20
je 0x49724a
cmp cl, 9
jne 0x497254
mov byte [eax], 0
mov bl, byte [esp + 0x7c8]
lea esi, [esp + 0x7c8]
test bl, bl
je 0x4972a8
mov dl, bl
mov ecx, 0x4bb7f4
mov al, 0x20
cmp dl, al
je 0x497457
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x497268
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x497261
lea edx, [esp + 0x7c8]
mov ecx, 0x4c121c
mov al, 0x7d
nop
cmp bl, al
je 0x497457
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x497290
mov bl, byte [edx + 1]
inc edx
test bl, bl
jne 0x497287
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4972cb
mov ecx, 0x4c121c
mov al, 0x7d
cmp dl, al
je 0x4972d6
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4972b7
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4972b0
cmp dword [esp + 0x10], 0
je 0x497457
lea ecx, [esp + 0x7c8]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4972e0
sub ecx, edx
cmp ecx, 0x125
ja 0x49846a
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 0x4973ad
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 0x497352
cmp al, 9
jne 0x497355
inc ecx
jmp 0x497348
test al, al
je 0x497398
cmp al, 0x2d
je 0x497361
cmp al, 0x2b
jne 0x497368
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x497398
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x497377
cmp al, 0x58
jne 0x497398
movsx eax, byte [ecx + 2]
push eax
call dword [esp + 0x74]
add esp, 4
test eax, eax
je 0x497398
push 0x10
push 0
push esi
call dword [esp + 0x80]
add esp, 0xc
jmp 0x4973a3
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 0x497557
lea ecx, [esp + 0x190]
mov al, byte [ecx]
cmp al, 0x20
je 0x4973cf
cmp al, 9
jne 0x4973d2
inc ecx
jmp 0x4973c5
mov eax, ecx
lea edx, [esp + 0x190]
sub eax, edx
je 0x497402
mov esi, ecx
lea edx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4973e4
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 0x497557
cmp esi, 0xffffffff
jne 0x497429
lea esi, [esp + 0x190]
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x497420
sub esi, ecx
lea eax, [esp + esi + 0x18f]
mov cl, byte [eax]
cmp cl, 0x20
je 0x49743c
cmp cl, 9
jne 0x49744e
lea edx, [esp + 0x190]
cmp eax, edx
je 0x4977be
dec eax
jmp 0x497430
mov byte [eax + 1], 0
jmp 0x497557
lea eax, [esp + 0x7c8]
push 0x4bcdd4
push eax
call dword [esp + 0x48]
mov esi, eax
add esp, 8
cmp esi, 0x218
ja 0x49846a
lea edi, [esp + 0x7c8]
mov dl, byte [edi]
cmp dl, 0x20
je 0x49748c
cmp dl, 9
jne 0x49748f
inc edi
jmp 0x497480
test dl, dl
je 0x4974b8
mov ecx, 0x4bb7f4
mov al, 0x20
nop word [eax + eax]
cmp dl, al
je 0x4975c3
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4974a0
mov dl, byte [edi + 1]
inc edi
test dl, dl
jne 0x497493
xor edi, edi
lea ecx, [esp + 0x378]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4974c4
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 0x4974f9
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 0x49754f
mov dl, bl
nop
mov ecx, 0x4c1388
mov al, 0x20
cmp dl, al
je 0x4975d1
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x497537
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x497530
mov byte [esp + 0x190], 0
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
cmp byte [edi + 0x14], 0
je 0x49757d
cmp byte [esp + 0x190], 0
jne 0x49757d
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 0x498536
lea eax, [esp + 0x378]
push str._bool
push eax
call dword [esp + 0xb4]
add esp, 8
test eax, eax
jne 0x4977d4
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x497812
cmp byte [edi], 0x3a
je 0x49751b
jmp 0x4974ba
lea esi, [esp + 0x7c8]
mov dl, bl
nop word [eax + eax]
mov ecx, 0x4c1388
mov al, 0x20
cmp dl, al
je 0x4975fd
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4975e7
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4975e0
xor esi, esi
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x497600
sub esi, ecx
cmp esi, 0x11b
ja 0x49846a
test edi, edi
je 0x497627
cmp byte [edi], 0x3a
jne 0x497627
lea edx, [esp + 0x7c8]
jmp 0x49764d
lea edx, [esp + 0x7c8]
nop
mov ecx, 0x4c1388
mov al, 0x20
cmp bl, al
je 0x49764d
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x497637
mov bl, byte [edx + 1]
inc edx
test bl, bl
jne 0x497630
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 0x497654
lea eax, [esp + 0x190]
push 0x3a
push eax
call dword [esp + 0x2c]
mov esi, eax
add esp, 8
test esi, esi
je 0x497709
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 0x4976aa
cmp al, 9
jne 0x4976ad
inc ecx
jmp 0x4976a0
test al, al
je 0x4976f6
cmp al, 0x2d
je 0x4976b9
cmp al, 0x2b
jne 0x4976c0
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x4976f6
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x4976cf
cmp al, 0x58
jne 0x4976f6
movsx eax, byte [ecx + 2]
push eax
call dword [esp + 0x74]
add esp, 4
test eax, eax
je 0x4976f6
push 0x10
push 0
push esi
call dword [esp + 0x80]
add esp, 0xc
add bl, al
mov dword [esp + 0x20], ebx
jmp 0x49770f
push esi
call dword [esp + 0x84]
add esp, 4
add bl, al
mov dword [esp + 0x20], ebx
jmp 0x49770f
xor al, al
mov byte [esp + 0x20], al
or esi, 0xffffffff
mov byte [esp + 0xf], al
cmp byte [esp + 0x190], 0
je 0x497557
lea ecx, [esp + 0x190]
nop dword [eax + eax]
mov al, byte [ecx]
cmp al, 0x20
je 0x49773a
cmp al, 9
jne 0x49773d
inc ecx
jmp 0x497730
mov eax, ecx
lea edx, [esp + 0x190]
sub eax, edx
je 0x49776e
mov esi, ecx
lea edx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x497750
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 0x497557
cmp esi, 0xffffffff
jne 0x497799
lea esi, [esp + 0x190]
lea ecx, [esi + 1]
nop dword [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x497790
sub esi, ecx
lea eax, [esp + esi + 0x18f]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4977b0
cmp cl, 9
jne 0x49744e
lea edx, [esp + 0x190]
cmp eax, edx
je 0x4977be
dec eax
jmp 0x4977a0
cmp cl, 0x20
je 0x4977cc
cmp cl, 9
jne 0x497557
mov byte [eax], 0
jmp 0x497557
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi*4 + 0x4c200c]
lea edx, [esp + 0x378]
call fcn.0049eb30
test eax, eax
jne 0x4977ff
inc esi
cmp esi, 8
jl 0x4977e0
jmp 0x497805
lea eax, [esi + 1]
movzx eax, ax
cwde
mov dword [esp + 0x3c], eax
test eax, eax
je 0x497c99
cmp dword [esp + 0x30], 0
je 0x497895
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x49782e
cmp eax, 4
jge 0x49782e
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x497837
mov esi, 4
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x10]
mov eax, ecx
cdq
idiv esi
test edx, edx
je 0x497851
mov eax, esi
sub eax, edx
cdq
idiv esi
add ecx, edx
mov dword [esp + 0x10], ecx
cmp esi, dword [esp + 0x28]
jle 0x49785b
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 0x4979ae
mov al, byte [esp + 0xf]
test al, al
je 0x4979aa
cmp byte [esp + 0x20], al
mov eax, dword [esp + 0x10]
je 0x4979ae
sub eax, dword [esp + 0x3c]
jmp 0x4979ae
mov dl, byte [esp + 0xf]
test dl, dl
je 0x4978a3
cmp byte [esp + 0x20], dl
jne 0x4978cf
mov ecx, dword [esp + 0x34]
test ecx, ecx
jle 0x4978b1
mov edi, ecx
cmp eax, ecx
jg 0x4978b3
mov edi, eax
mov esi, dword [esp + 0x10]
mov eax, esi
cdq
idiv edi
test edx, edx
je 0x4978c9
mov eax, edi
sub eax, edx
cdq
idiv edi
add esi, edx
mov dl, byte [esp + 0xf]
jmp 0x4978d7
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 0x49785b
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.0049eb30
test eax, eax
je 0x497923
xor edi, edi
jmp 0x49796b
lea edx, [esp + 0x378]
mov ecx, str._LPWSTR_LPCWSTR_WCHAR
call fcn.0049eb30
test eax, eax
je 0x49793f
mov edi, 0x4b0
jmp 0x497957
lea edx, [esp + 0x378]
mov ecx, str._CHAR_LPSTR_LPCSTR_UCHAR
call fcn.0049eb30
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.0049eb30
lea edx, [esp + 0x378]
mov ecx, str._FLOAT_DOUBLE_PFLOAT_PDOUBLE
mov esi, eax
call fcn.0049eb30
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 0x497866
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.00498a70
mov edi, eax
test edi, edi
je 0x498494
mov edx, dword [esp + 0x30]
test esi, esi
jne 0x4979f6
test edx, edx
je 0x497c5d
xor ecx, ecx
nop dword [eax + eax]
mov al, byte [esp + ecx + 0x378]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x59f], al
test al, al
jne 0x497a00
mov bl, byte [esp + 0x190]
test edx, edx
je 0x497a84
test esi, esi
jne 0x497a2d
test bl, bl
jne 0x497a2d
lea eax, [esi + 1]
jmp 0x497a2f
xor eax, eax
mov esi, edx
sub esi, eax
je 0x497a80
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 0x497a50
sub ecx, edx
je 0x497a73
nop dword [eax + eax]
mov al, byte [esp + ecx + 0x5a0]
mov byte [esp + ecx + 0x5a1], al
sub ecx, 1
jne 0x497a60
mov byte [esp + 0x5a1], 0x2a
sub esi, 1
jne 0x497a40
mov esi, dword [esp + 0x2c]
test bl, bl
je 0x497abe
test esi, esi
je 0x497abe
lea edx, [esp + 0x5a0]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x497a96
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 0x497ab1
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 0x497b09
mov eax, dword [esp + 0x108]
mov dword [edi + 0x14], eax
jmp 0x497c59
push 0x28
call fcn.004b37d4
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 0x497bcf
test esi, esi
je 0x497bcf
cmp dword [esp + 0x30], 0
mov eax, 4
jne 0x497bc8
mov eax, dword [edi + 8]
mov ecx, esi
imul ecx, eax
jmp 0x497bec
lea eax, [esp + 0x5a0]
push 0x2a
push eax
call dword [esp + 0x2c]
add esp, 8
mov ecx, 4
test eax, eax
jne 0x497bec
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.00496710
test eax, eax
je 0x498494
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 0x497c6f
cmp byte [esp + 0x20], bl
jne 0x4982db
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 0x4982df
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 [0x4c8024]
je 0x497dd9
mov edi, dword [eax + 0x94]
lea eax, [esp + 0x378]
mov ebx, dword [esp + 0x40]
push 0x4c1270
push eax
call ebx
add esp, 8
dec eax
mov ecx, 0x4cc848
push 0
push eax
lea eax, [esp + 0x381]
push eax
call fcn.0042e8f0
mov ecx, dword [0x4c8024]
mov dword [ecx + 0x94], eax
test eax, eax
je 0x4984a3
lea esi, [esp + 0x378]
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x497d10
lea eax, [esp + 0x378]
sub esi, ecx
push 0x4c1270
push eax
call ebx
sub esi, eax
lea eax, [esp + 0x380]
push 0x4c1270
push eax
sub esi, 3
call ebx
add esp, 0x10
lea ecx, [esp + 0x379]
add eax, ecx
mov ecx, 0x4cc848
push 0
push 2
push 0
push esi
push eax
call fcn.00430700
mov dword [esp + 0x58], eax
mov eax, dword [0x4c8024]
mov dword [eax + 0x94], edi
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x497db1
lea ecx, [esp + 0x378]
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x497d80
push 0
sub ecx, edx
push 1
push 0
lea eax, [ecx - 2]
mov ecx, 0x4cc848
push eax
lea eax, [esp + 0x389]
push eax
call fcn.00430700
mov dword [esp + 0x58], eax
test eax, eax
je 0x4984d3
mov ebx, dword [esp + 0x30]
test ebx, ebx
jne 0x497f3a
mov esi, dword [esp + 0x34]
test esi, esi
jle 0x497e42
mov ecx, dword [esp + 0x60]
cmp ecx, 5
ja case.0x497dd2.1
jmp dword [ecx*4 + 0x4987d8]
cmp dword [eax + 0x94], 0
je 0x497d6d
lea ecx, [esp + 0x378]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x497df0
push 0
sub ecx, edx
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4cc848
push eax
lea eax, [esp + 0x389]
push eax
call fcn.00430700
mov dword [esp + 0x58], eax
jmp 0x497d71
push 0
push 1
mov ecx, eax
call fcn.00401550
jmp case.0x497dd2.0
mov eax, 0x4b6ba9
mov ecx, eax
call fcn.00490890
movzx eax, al
cmp eax, esi
jg 0x497e6e
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
cmp ecx, 5
ja case.0x497e4b.1
jmp dword [ecx*4 + 0x4987f0]
push 0
push 1
mov ecx, eax
call fcn.00401550
jmp case.0x497e4b.0
mov eax, 0x4b6ba9
mov ecx, eax
call fcn.00490890
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 0x497e8d
cmp byte [esp + 0x20], al
jne 0x497ead
mov edi, dword [esp + 0x10]
test edi, edi
je 0x497eb1
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x497eb1
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add edi, edx
mov dword [esp + 0x10], edi
jmp 0x497eb1
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.00490b00
add esp, 0x10
cmp dword [esp + 0x98], 1
jne 0x4984f9
mov al, byte [esp + 0xf]
test al, al
je 0x497f17
cmp byte [esp + 0x20], al
jne 0x497fbb
mov ecx, dword [esp + 0x28]
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x497fbb
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add edi, edx
mov dword [esp + 0x10], edi
jmp 0x497fbb
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.00490b00
add esp, 0x10
cmp dword [esp + 0x98], 1
jne 0x4984d3
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x497f8b
cmp eax, 4
jge 0x497f8b
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x497f94
mov esi, 4
mov dword [esp + 0x1c], esi
mov edi, dword [esp + 0x10]
mov eax, edi
cdq
idiv esi
test edx, edx
je 0x497fae
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 ecx, ecx
push 0
push 0
push 0xffff
push 0
test ebx, ebx
mov eax, edi
push 0
cmovne eax, ecx
mov ecx, dword [esp + 0xa4]
sub ecx, eax
lea eax, [esp + 0x98]
push ecx
mov ecx, dword [esp + 0x30]
push esi
push edi
push ebx
push eax
lea eax, [esp + 0x1b8]
push eax
call fcn.00498a70
mov edi, eax
test edi, edi
je 0x498523
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 0x498010
test ebx, ebx
mov bl, byte [esp + 0x190]
je 0x498094
test esi, esi
jne 0x49803d
test bl, bl
jne 0x49803d
lea eax, [esi + 1]
jmp 0x49803f
xor eax, eax
mov esi, dword [esp + 0x30]
sub esi, eax
je 0x498090
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 0x498060
sub ecx, edx
je 0x498083
nop dword [eax + eax]
mov al, byte [esp + ecx + 0x5a0]
mov byte [esp + ecx + 0x5a1], al
sub ecx, 1
jne 0x498070
mov byte [esp + 0x5a1], 0x2a
sub esi, 1
jne 0x498050
mov esi, dword [esp + 0x2c]
test bl, bl
je 0x4980ce
test esi, esi
je 0x4980ce
lea edx, [esp + 0x5a0]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4980a6
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 0x4980c1
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 0x498119
mov eax, dword [esp + 0x108]
mov dword [edi + 0x14], eax
jmp 0x498284
push 0x28
call fcn.004b37d4
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 0x4981d0
test esi, esi
je 0x4981d0
cmp dword [esp + 0x30], 0
mov ecx, 4
jne 0x4981cb
mov ecx, dword [edi + 8]
imul ecx, esi
jmp 0x4981ed
lea eax, [esp + 0x5a0]
push 0x2a
push eax
call dword [esp + 0x2c]
add esp, 8
mov ecx, 4
test eax, eax
jne 0x4981ed
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 0x49821d
lea eax, [esp + 0x5a0]
push 0x5b
push eax
call dword [esp + 0x2c]
add esp, 8
test eax, eax
je 0x498230
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.00496710
test eax, eax
je 0x498494
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 0x4982a2
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 0x4982df
mov bl, byte [esp + 0xf]
test bl, bl
je 0x4982b0
cmp byte [esp + 0x20], bl
jne 0x4982db
mov edx, dword [esp + 0x90]
test esi, esi
je 0x4982d0
mov ecx, edx
lea eax, [esi - 1]
sub ecx, dword [esp + 0x10]
imul ecx, eax
lea ebx, [ecx + edx]
mov dword [esp + 0x10], ebx
jmp 0x4982df
xor ecx, ecx
lea ebx, [ecx + edx]
mov dword [esp + 0x10], ebx
jmp 0x4982df
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0x38]
test edx, edx
je 0x49831c
mov ecx, dword [esp + edx*4 + 0x338]
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0x2b8]
jle 0x498302
mov dword [esp + edx*4 + 0x2b8], eax
cmp byte [esp + edx + 0x180], 0
jne 0x49831c
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 0x49839f
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4983ec
nop word [eax + eax]
mov ecx, 0x4c11f8
mov al, 0x3b
cmp dl, al
je 0x498360
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x498347
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x498340
jmp 0x4983ec
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 0x49839b
nop dword [eax + eax]
mov ecx, 0x4c11f8
mov al, 0x3b
cmp dl, al
je 0x4983e4
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x498387
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x498380
mov edi, dword [esp + 0x14]
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4983c4
mov ecx, 0x4c11f8
mov al, 0x3b
nop
cmp dl, al
je 0x498404
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4983b0
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4983a7
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4983d0
sub ecx, edx
add edi, ecx
mov dword [esp + 0x14], edi
jmp 0x496f9b
cmp edi, esi
jae 0x49839b
mov edi, dword [esp + 0x14]
push 0x4b7534
push edi
call dword [esp + 0x48]
add esp, 8
add edi, eax
mov dword [esp + 0x14], edi
jmp 0x496f9b
push 0x4c11f8
push edi
call dword [esp + 0x48]
inc edi
add esp, 8
add edi, eax
mov dword [esp + 0x14], edi
jmp 0x496f9b
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push edi
push str.Invalid_structure_definition.
mov ecx, 0x4cc848
call fcn.0043ee10
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, 0x4cc848
push eax
push str.Bit_field_must_not_be_a_pointer
call fcn.0043ee10
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, 0x4cc848
push eax
push str.Invalid_structure_definition.
call fcn.0043ee10
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], edi
mov ecx, dword [esp + 0x18]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x378]
mov ecx, 0x4cc848
push eax
push str.Variable_was_not_found_in_function.
call fcn.0043ee10
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, 0x4cc848
push eax
push str.Invalid_structure_definition.
call fcn.0043ee10
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, 0x4cc848
push eax
push str.Invalid_structure_definition.
call fcn.0043ee10
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, 0x4cc848
push eax
push str.Invalid_structure_definition.
call fcn.0043ee10
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 0x49857a
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x49857a
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
test ebx, ebx
jne 0x4985a8
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.0x49859a.1
jmp dword [ecx*4 + 0x498808]
mov eax, dword [eax]
jmp 0x4969a4
mov edi, dword [esp + 0x18]
cmp dword [edi + 0x18], ebx
je 0x498629
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4985c5.1
jmp dword [ecx*4 + 0x498820]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401550
push eax
push str.Invalid_structure_Length.
mov ecx, 0x4cc848
call fcn.0043ee10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [eax]
mov ecx, 0x4cc848
push eax
push str.Invalid_structure_Length.
call fcn.0043ee10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4b6ba9
mov ecx, 0x4cc848
push eax
push str.Invalid_structure_Length.
call fcn.0043ee10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [edi + 0x14], 0
je 0x498730
mov eax, dword [edi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [edi + 0xc], 1
jg 0x498674
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x18]
cmp byte [eax], 0
jne 0x498674
mov dword [edi + 0x1c], 0
cmp dword [esp + 0x50], 2
jle 0x498730
mov eax, dword [esp + 0x54]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 8]
cmp ecx, 6
jne 0x498695
mov edx, dword [eax]
mov eax, edx
jmp 0x4986c1
push 0
push 0
mov ecx, edi
call fcn.00498850
mov dword [edi + 0x1c], eax
test eax, eax
jne 0x498654
mov eax, dword [edi]
push edi
call dword [eax + 8]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 4
jne 0x498730
mov eax, dword [eax]
mov dl, byte [eax + 0x17]
test dl, dl
jne 0x4986ac
mov esi, dword [eax + 0xc]
jmp 0x4986ae
mov esi, eax
test byte [esi + 0x15], 2
je 0x498719
test dl, dl
jne 0x4986bd
mov edx, dword [eax + 0xc]
jmp 0x4986bf
mov edx, eax
mov edx, dword [edx]
test edx, edx
je 0x498730
cmp ecx, 6
je 0x49870f
cmp ecx, 4
jne 0x49870d
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x4986db
mov edx, dword [eax + 0xc]
jmp 0x4986dd
mov edx, eax
test byte [edx + 0x15], 2
je 0x4986f6
test cl, cl
jne 0x4986ea
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, edi
push eax
call fcn.00498ba0
jmp 0x498730
test cl, cl
jne 0x4986ff
mov ecx, dword [eax + 0xc]
jmp 0x498701
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x49870d
push eax
call fcn.0043f510
xor eax, eax
push eax
mov ecx, edi
call fcn.00498ba0
jmp 0x498730
test dl, dl
jne 0x498722
mov ecx, dword [eax + 0xc]
jmp 0x498724
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x498730
push eax
call fcn.0043f510
cmp dword [edi + 0xc], 1
jne 0x498756
mov ecx, dword [edi + 8]
cmp dword [ecx + 0x18], 0
je 0x498756
cmp word [ecx + 4], 0
jne 0x498756
cmp dword [ecx + 0x10], 0
jne 0x498756
cmp dword [ecx + 0x14], 0
jne 0x498756
mov byte [edi + 0x15], 1
mov eax, edi
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.0x49876f.1
jmp dword [ecx*4 + 0x498838]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401550
jmp 0x49878c
mov eax, dword [eax]
jmp 0x49878c
mov eax, 0x4b6ba9
push eax
push str.Out_of_memory.
mov ecx, 0x4cc848
call fcn.0043ee10
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret