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

Disassembly:
mov eax, 0x8628
call fcn.004ebaf0
mov eax, dword [0x526b24]
xor eax, esp
mov dword [esp + 0x8624], eax
push ebx
mov ebx, dword [esp + 0x8630]
lea eax, [esp + 0xfc]
push esi
mov esi, dword [esp + 0x8638]
push edi
push 0x40
push 0
push eax
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x1c], 0
call sub.VCRUNTIME140.dll_memset
push 0x40
lea eax, [esp + 0xd4]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push 0x40
lea eax, [esp + 0x160]
xorps xmm0, xmm0
push 0
push eax
movups xmmword [esp + 0x1a8], xmm0
call sub.VCRUNTIME140.dll_memset
movq xmm0, qword [str._UInt]
lea eax, [esp + 0x60]
mov dword [esp + 0x48], eax
xor ecx, ecx
cdq
mov dword [esp + 0x98], eax
lea eax, [esp + 0x78]
mov dword [esp + 0xd8], eax
lea eax, [esp + 0xa8]
mov dword [esp + 0xdc], eax
lea eax, [esp + 0x98]
mov dword [esp + 0xe0], eax
lea eax, [esp + 0x88]
mov dword [esp + 0xe4], eax
mov eax, dword [0x5068ac]
mov dword [esp + 0x214], eax
mov ax, word [0x5068b0]
push 0x436
mov word [esp + 0x21c], ax
lea eax, [esp + 0x21e]
push ecx
push eax
mov dword [esp + 0x60], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x6c], 1
mov dword [esp + 0x58], 0
mov dword [esp + 0x48], ecx
mov dword [esp + 0x8c], 4
mov dword [esp + 0xbc], 1
mov dword [esp + 0xac], 1
mov dword [esp + 0xa8], edx
mov dword [esp + 0x9c], 1
movq qword [esp + 0x218], xmm0
call sub.VCRUNTIME140.dll_memset
mov dword [ebx + 8], 0
mov dword [ebx], 0x4f5b70
push dword [esi]
mov byte [esp + 0x48], 0
call fcn.004a2dd0
add esp, 0x34
test eax, eax
je 0x4c9c6a
mov dword [ebx + 8], 1
push dword [esi]
call fcn.004a2dd0
add esp, 4
mov edi, eax
cmp dword [esp + 0x8640], 1
jle 0x4c9c34
push dword [esi + 4]
call fcn.004a2d80
add esp, 4
mov ecx, eax
mov eax, dword [edi + 0x40]
mov esi, edx
cdq
add eax, ecx
pop edi
adc edx, esi
mov dword [ebx], eax
pop esi
mov dword [ebx + 4], edx
pop ebx
mov ecx, dword [esp + 0x8624]
xor ecx, esp
call fcn.004ebadf
add esp, 0x8628
ret
mov eax, dword [edi + 0x40]
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
cdq
add eax, ecx
pop edi
adc edx, esi
mov dword [ebx], eax
pop esi
mov dword [ebx + 4], edx
pop ebx
mov ecx, dword [esp + 0x8624]
xor ecx, esp
call fcn.004ebadf
add esp, 0x8628
ret
mov edi, dword [esp + 0x8640]
cmp edi, 1
jle 0x4c9ca5
push dword [esi + 4]
call fcn.004a28a0
add esp, 4
test eax, eax
je 0x4c9ca5
push dword [esi + 4]
call fcn.004a2d80
mov ebx, eax
add esp, 4
cdq
mov dword [esp + 0x10], ebx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
cmp edi, 2
jle 0x4c9cd1
push dword [esi + 8]
call fcn.004a28a0
add esp, 4
test eax, eax
je 0x4c9cd1
push dword [esi + 8]
call fcn.004a2d80
mov dword [esp + 0x28], eax
add esp, 4
cdq
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
push ebp
push 0
push 0
push dword [esi]
call fcn.004a2e60
mov ebp, eax
push ebp
mov dword [esp + 0x20], ebp
call fcn.004e6170
mov ebx, eax
lea eax, [esp + 0x1d4]
push 0xa
push eax
push ebx
mov dword [esp + 0x4c], ebx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itow]
add esp, 0x1c
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4c9d06
sub eax, edx
sar eax, 1
cmp word [ebp + eax*2], 0x3a
jne 0x4c9d57
test ebx, ebx
jle 0x4c9d57
lea ecx, [esp + 0x1c4]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c9d30
sub ecx, edx
mov eax, ebx
sar ecx, 1
cdq
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
lea ebp, [ebp + ecx*2]
add ebp, 2
mov dword [esp + 0x10], ebp
jmp 0x4c9d66
xor ebx, ebx
xorps xmm0, xmm0
mov dword [esp + 0x30], ebx
movlpd qword [esp + 0x68], xmm0
cmp edi, 3
jle 0x4c9d94
push dword [esi + 0xc]
call fcn.004a28e0
add esp, 4
test eax, eax
je 0x4c9d94
push dword [esi + 0xc]
call fcn.004a2d80
mov edi, eax
add esp, 4
cdq
mov dword [esp + 0x30], edi
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], edx
cmp word [ebp], 0
je 0x4cb012
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscspn]
mov ecx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
mov dword [esp + 0x24], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
mov dword [esp + 0x3c], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x20]
push 2
push 0x5068b4
push ebp
mov dword [esp + 0x58], eax
mov dword [esp + 0x44], eax
call ecx
add esp, 0xc
test eax, eax
jne 0x4c9e52
movzx ebx, word [ebp]
mov edi, ebp
test bx, bx
je 0x4c9e25
mov esi, ebx
nop
mov ecx, 0x5056b8
mov edx, 0xa
nop word [eax + eax]
cmp si, dx
je 0x4c9ef6
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4c9e00
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4c9df0
mov ecx, ebp
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4c9e30
sub ecx, edx
sar ecx, 1
lea ebp, [ebp + ecx*2]
mov dword [esp + 0x10], ebp
cmp word [ebp], 0
je 0x4cb012
mov ebx, dword [esp + 0x10]
mov edi, ebx
movzx eax, word [ebx]
test ax, ax
je 0x4c9e95
mov esi, eax
mov ecx, str._n_r_t
mov edx, 0xa
nop dword [eax]
cmp si, dx
je 0x4c9f40
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4c9e70
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4c9e62
push 0x7b
push ebx
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
test eax, eax
je 0x4c9fa9
movzx eax, word [ebx]
mov edi, ebx
test ax, ax
je 0x4ca0b4
mov esi, eax
nop dword [eax + eax]
mov ecx, 0x506894
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4c9f54
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4c9ed0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4c9ec0
jmp 0x4ca0b4
mov dword [esp + 0x10], ebp
mov esi, ebx
nop dword [eax]
mov ecx, 0x5056b8
mov edx, 0xa
nop word [eax + eax]
cmp si, dx
je 0x4c9e47
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4c9f10
movzx eax, word [ebp + 2]
add ebp, 2
mov dword [esp + 0x10], ebp
mov esi, eax
test ax, ax
jne 0x4c9f00
xor ebp, ebp
jmp 0x4c9e43
cmp ebx, edi
jne 0x4c9e95
mov ebp, dword [esp + 0x10]
add ebp, 2
jmp 0x4cae53
push 0x7b
push ebx
call sub.VCRUNTIME140.dll_wcschr
mov ebx, eax
add esp, 8
mov eax, dword [esp + 0x10]
mov edi, eax
movzx ecx, word [eax]
test cx, cx
je 0x4c9fa5
mov esi, ecx
mov ecx, 0x506894
mov edx, 0x3b
nop dword [eax + eax]
cmp si, dx
je 0x4ca0a8
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4c9f80
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4c9f71
mov ebx, dword [esp + 0x10]
movzx eax, word [ebx]
cmp eax, 0x7d
jne 0x4ca1b8
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x14]
mov eax, edi
mov edx, dword [esp + esi*4 + 0x108]
sub eax, edx
mov ecx, dword [esp + esi*4 + 0xc8]
cmp eax, ecx
jle 0x4c9fdc
mov ecx, eax
mov dword [esp + esi*4 + 0xc8], eax
cmp esi, 1
jle 0x4ca1b1
cmp byte [esp + esi + 0x187], 0
je 0x4ca1b1
mov esi, dword [esp + esi*4 + 0x148]
mov eax, edi
cdq
idiv esi
test edx, edx
je 0x4ca00c
mov eax, esi
sub eax, edx
cdq
idiv esi
add edi, edx
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + esi*4 + 0x148]
cmp eax, dword [edx]
jle 0x4ca021
mov dword [edx], eax
mov eax, dword [esp + 0x34]
cmp ecx, eax
mov byte [esp + 0x18], 0
cmovg eax, ecx
sub esi, 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x20], esi
lea eax, [eax + edi]
cmovne eax, edi
add ebx, 2
mov dword [esp + 0x14], eax
mov edi, ebx
je 0x4ca091
movzx eax, word [ebx]
test ax, ax
je 0x4ca091
mov esi, eax
nop word [eax + eax]
mov ecx, 0x506894
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4ca093
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4ca070
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4ca060
xor edi, edi
xor eax, eax
cmp ebx, edi
sete al
lea eax, [eax*2 + 2]
add ebp, eax
jmp 0x4cae53
cmp ebx, edi
jae 0x4c9fa5
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x20]
xor eax, eax
mov edi, dword [esp + 0x38]
inc ebp
test edi, edi
mov dword [esp + 0x20], ebp
push str.struct
cmovne eax, dword [esp + 0x38]
push ebx
mov dword [esp + 0x3c], eax
call sub.VCRUNTIME140.dll_wcsstr
add esp, 8
test eax, eax
je 0x4ca100
push str.struct
push ebx
call sub.VCRUNTIME140.dll_wcsstr
push 0x7b
push ebx
mov esi, eax
call sub.VCRUNTIME140.dll_wcschr
add esp, 0x10
cmp esi, eax
jae 0x4ca100
mov al, 1
jmp 0x4ca10b
cmp ebp, 0x10
jae 0x4cb05e
xor al, al
mov byte [esp + edi + 0x189], al
mov edi, dword [esp + 0x30]
test edi, edi
jle 0x4ca132
push ebx
call fcn.004d74e0
movzx eax, al
add esp, 4
cmp eax, edi
jle 0x4ca132
mov esi, edi
mov dword [esp + 0x1c], edi
jmp 0x4ca142
push ebx
call fcn.004d74e0
movzx esi, al
add esp, 4
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x14]
mov eax, ecx
cdq
idiv esi
test edx, edx
je 0x4ca15c
mov eax, esi
sub eax, edx
cdq
idiv esi
add ecx, edx
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
cmp eax, esi
jle 0x4ca176
test edi, edi
jle 0x4ca170
mov esi, edi
cmp eax, edi
jg 0x4ca172
mov esi, eax
mov dword [esp + 0x1c], esi
mov eax, dword [esp + 0x4c]
push 0x7b
push ebx
mov dword [edx], 0
mov dword [esp + eax*4 + 0x154], esi
mov dword [esp + eax*4 + 0x114], ecx
mov dword [esp + eax*4 + 0xd4], 0
mov byte [esp + 0x20], 0
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
lea ebp, [eax + 2]
jmp 0x4cae53
mov edi, edx
jmp 0x4ca010
xor ebp, ebp
mov edi, ebx
mov dword [esp + 0x38], ebp
test ax, ax
je 0x4ca205
mov esi, eax
nop word [eax + eax]
mov ecx, 0x5068d8
mov edx, 0x7d
nop word [eax + eax]
cmp si, dx
je 0x4ca2a3
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4ca1e0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4ca1d0
mov ecx, ebx
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4ca210
sub ecx, edx
sar ecx, 1
cmp ecx, 0x4000
ja 0x4cafd1
lea edx, [esp + 0x630]
mov ecx, ebx
sub edx, ebx
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4ca240
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x3c]
cmp word [esp + 0x630], bp
je 0x4ca2fd
lea ecx, [esp + 0x630]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4ca270
sub ecx, edx
sar ecx, 1
lea eax, [esp + ecx*2 + 0x62e]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x4ca293
cmp ecx, 9
jne 0x4ca2f0
lea ecx, [esp + 0x630]
cmp eax, ecx
je 0x4ca2f8
sub eax, 2
jmp 0x4ca286
mov edi, dword [esp + 0x24]
push 0x5068d8
push ebx
call edi
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x4cafd1
push esi
push ebx
mov ebx, dword [esp + 0x44]
lea eax, [esp + 0x638]
push eax
call ebx
add esi, esi
add esp, 0xc
cmp esi, 0x8002
jae 0x4cb05e
xor eax, eax
mov word [esp + esi + 0x630], ax
jmp 0x4ca258
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x4ca2fd
xor ecx, ecx
mov word [eax], cx
lea eax, [esp + 0x630]
push 0x5b
push eax
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
test eax, eax
je 0x4ca39f
push 0x14
lea eax, [esp + 0x634]
push 0x5b
push eax
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
push eax
lea eax, [esp + 0x1a0]
push eax
call ebx
lea eax, [esp + 0x1a4]
push 0x50691c
push eax
call edi
add esp, 0x14
lea eax, [eax*2 + 2]
cmp eax, 0x2c
jae 0x4cb05e
xor ecx, ecx
mov word [esp + eax + 0x198], cx
lea eax, [esp + 0x19a]
push eax
call fcn.004e6170
push 0
push 0
push 0x4001
push 1
mov ebp, eax
lea eax, [esp + 0x1ac]
push 1
push 0x4f5b70
push eax
lea eax, [esp + 0x650]
mov dword [esp + 0x58], ebp
push eax
call fcn.004e5430
add esp, 0x24
lea eax, [esp + 0x630]
push 0x5b
push eax
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
test eax, eax
jne 0x4caf9c
lea eax, [esp + 0x630]
push 0x2a
push eax
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
test eax, eax
je 0x4ca5a9
lea eax, [esp + 0x630]
push 0x3a
push eax
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
test eax, eax
jne 0x4cae6b
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x4ca402
cmp eax, 4
jge 0x4ca402
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x4ca40b
mov esi, 4
mov dword [esp + 0x1c], esi
mov ebx, dword [esp + 0x14]
mov eax, ebx
cdq
idiv esi
test edx, edx
je 0x4ca421
mov eax, esi
sub eax, edx
cdq
idiv esi
add ebx, edx
test ebp, ebp
mov eax, 1
cmovne eax, ebp
lea ebx, [ebx + eax*4]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
cmp esi, dword [eax]
jle 0x4ca43c
mov dword [eax], esi
mov edx, dword [esp + 0x20]
test edx, edx
je 0x4ca46e
mov ecx, dword [esp + edx*4 + 0x108]
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0xc8]
jle 0x4ca45f
mov dword [esp + edx*4 + 0xc8], eax
cmp byte [esp + edx + 0x188], 0
cmove ebx, ecx
mov dword [esp + 0x14], ebx
mov ebp, dword [esp + 0x10]
push 0x7d
push ebp
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
test eax, eax
je 0x4ca521
movzx eax, word [ebp]
mov edi, ebp
test ax, ax
je 0x4ca57a
mov esi, eax
nop word [eax + eax]
mov ecx, 0x506894
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4ca4d6
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4ca4b0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4ca4a0
jmp 0x4ca57a
push 0x7d
push ebp
call sub.VCRUNTIME140.dll_wcschr
movzx ecx, word [ebp]
add esp, 8
mov ebx, eax
mov edi, ebp
test cx, cx
je 0x4ca521
mov esi, ecx
mov ecx, 0x506894
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4ca576
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4ca500
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4ca4f0
movzx eax, word [ebp]
mov edi, ebp
test ax, ax
je 0x4ca561
mov esi, eax
nop
mov ecx, 0x506894
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4ca590
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4ca540
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4ca530
mov ecx, ebp
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4ca566
jmp 0x4cae4b
cmp ebx, edi
jae 0x4ca521
push 0x4f8740
push ebp
call dword [esp + 0x2c]
add esp, 8
lea ebp, [ebp + eax*2]
jmp 0x4cae53
push 0x506894
push ebp
call dword [esp + 0x2c]
add esp, 8
lea ebp, [ebp + eax*2]
add ebp, 2
jmp 0x4cae53
mov bx, word [esp + 0x630]
lea edi, [esp + 0x630]
test bx, bx
je 0x4ca65b
movzx esi, bx
nop dword [eax]
nop dword [eax + eax]
mov ecx, 0x4f94c4
mov edx, 0x20
nop word [eax + eax]
cmp si, dx
je 0x4ca603
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4ca5e0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4ca5d0
jmp 0x4ca60b
test edi, edi
jne 0x4ca6f3
lea edi, [esp + 0x630]
movzx esi, bx
nop word [eax + eax]
mov ecx, 0x5068d8
mov edx, 0x7d
nop word [eax + eax]
cmp si, dx
je 0x4ca653
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4ca630
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4ca620
jmp 0x4ca65b
test edi, edi
jne 0x4ca6f3
mov eax, dword [esp + 0x10]
mov edi, eax
movzx eax, word [eax]
test ax, ax
je 0x4ca6a1
mov esi, eax
nop dword [eax + eax]
mov ecx, 0x5068d8
mov edx, 0x7d
nop word [eax + eax]
cmp si, dx
je 0x4ca6a8
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4ca680
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4ca670
cmp dword [esp + 0x14], 0
je 0x4ca6f3
lea eax, [esp + 0x630]
push 0x3a
push eax
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
test eax, eax
je 0x4ca845
mov edx, dword [esp + 0x18]
xor esi, esi
movzx ecx, dl
shr ecx, 3
cmp ecx, dword [esp + 0x2c]
movzx edx, dl
cmove edx, esi
add eax, 2
push eax
mov dword [esp + 0x1c], edx
call fcn.004e6170
mov bl, al
add esp, 4
add byte [esp + 0x18], bl
jmp 0x4ca84b
mov ebx, dword [esp + 0x24]
lea eax, [esp + 0x630]
push 0x506960
push eax
call ebx
add esp, 8
cmp eax, 0x218
ja 0x4caf9c
lea esi, [esp + 0x630]
nop dword [eax + eax]
movzx eax, word [esi]
cmp eax, 0x20
je 0x4ca72d
cmp eax, 9
jne 0x4ca732
add esi, 2
jmp 0x4ca720
test ax, ax
je 0x4ca77d
mov edi, eax
nop dword [eax]
mov ecx, 0x4f94c4
mov edx, 0x20
nop word [eax + eax]
cmp di, dx
je 0x4ca773
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4ca750
movzx eax, word [esi + 2]
add esi, 2
mov edi, eax
test ax, ax
jne 0x4ca740
jmp 0x4ca77d
cmp word [esi], 0x3a
je 0x4ca803
lea ecx, [esp + 0x1ec]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4ca787
sub ecx, edx
sar ecx, 1
lea eax, [ecx - 2]
push eax
lea eax, [esp + 0x634]
push eax
lea eax, [esp + 0x1f6]
push eax
call dword [esp + 0x5c]
mov ecx, dword [esp + 0x24]
xor edx, edx
test eax, eax
movzx ecx, cl
lea eax, [esp + 0x63c]
cmovne ecx, edx
push 0x506960
push eax
mov byte [esp + 0x2c], cl
call ebx
push eax
lea eax, [esp + 0x648]
push eax
lea eax, [esp + 0x20a]
push eax
mov eax, dword [esp + 0x5c]
call eax
lea eax, [esp + 0x650]
push 0x506960
push eax
call ebx
add esp, 0x28
mov dword [esp + eax*2 + 0x1ee], 0x20
lea eax, [esp + 0x630]
push 0x3a
push eax
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
test eax, eax
je 0x4ca845
add eax, 2
push eax
call fcn.004e6170
mov bl, al
xor edx, edx
mov eax, dword [esp + 0x1c]
add esp, 4
movzx ecx, al
shr ecx, 3
cmp ecx, dword [esp + 0x2c]
movzx eax, al
cmovne edx, eax
add dl, bl
mov byte [esp + 0x18], dl
jmp 0x4ca84b
xor bl, bl
mov byte [esp + 0x18], bl
mov ecx, str._bool
lea eax, [esp + 0x1ec]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4ca87d
test dx, dx
je 0x4ca879
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4ca87d
add eax, 4
add ecx, 4
test dx, dx
jne 0x4ca857
xor eax, eax
jmp 0x4ca882
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4ca891
mov ecx, 1
mov dword [esp + 0x2c], ecx
jmp 0x4ca8ac
lea eax, [esp + 0x1ec]
push eax
call fcn.004e4550
movsx ecx, ax
add esp, 4
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x4ca92b
test bl, bl
je 0x4ca8b8
mov eax, dword [esp + 0x18]
cmp al, bl
jne 0x4ca910
cmp ecx, 1
jle 0x4ca8f3
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x4ca8d1
cmp ecx, eax
jle 0x4ca8d1
mov ecx, eax
mov dword [esp + 0x1c], eax
jmp 0x4ca8d5
mov dword [esp + 0x1c], ecx
mov esi, dword [esp + 0x14]
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x4ca8ef
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x14], esi
mov ecx, dword [esp + 0x2c]
test bl, bl
je 0x4ca8ff
mov eax, dword [esp + 0x18]
cmp al, bl
jne 0x4ca910
test ebp, ebp
mov eax, 1
cmovne eax, ebp
imul eax, ecx
add dword [esp + 0x14], eax
mov edi, dword [esp + 0x28]
mov ebp, dword [esp + 0x1c]
mov esi, dword [esp + 0x14]
cmp ebp, dword [edi]
jle 0x4cacf8
mov dword [edi], ebp
jmp 0x4cacf8
lea eax, [esp + 0x1ec]
mov dword [esp + 0x58], 0
push 0x28
push eax
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
test eax, eax
je 0x4cab32
mov esi, dword [0x62271c]
mov edx, dword fs:[0x2c]
lea edi, [esi*4]
mov eax, dword [edi + edx]
cmp byte [eax + 0x2198], 0
jne 0x4ca979
call fcn.004ebad3
mov edx, dword fs:[0x2c]
mov ecx, dword [edi + edx]
cmp byte [ecx + 0x2198], 0
mov eax, dword [ecx + 0x29c]
mov ebp, dword [eax + 0x18]
jne 0x4ca99a
call fcn.004ebad3
mov edx, dword fs:[0x2c]
mov eax, dword [edi + edx]
push 0x506978
mov esi, dword [eax + 0x298]
lea eax, [esp + 0x1f0]
push eax
call dword [esp + 0x2c]
add esp, 8
dec eax
mov ecx, esi
push eax
lea eax, [esp + 0x1f2]
push eax
call fcn.0045cbf0
mov esi, eax
mov eax, dword fs:[0x2c]
mov ecx, dword [edi + eax]
cmp byte [ecx + 0x2198], 0
jne 0x4ca9e7
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov eax, dword [edi + eax]
mov eax, dword [eax + 0x29c]
mov dword [eax + 0x18], esi
mov ecx, dword fs:[0x2c]
mov eax, dword [edi + ecx]
cmp byte [eax + 0x2198], 0
jne 0x4caa12
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov edx, dword [edi + ecx]
mov eax, dword [edx + 0x29c]
cmp dword [eax + 0x18], 0
je 0x4caeb6
xor ecx, ecx
nop word [eax + eax]
movzx eax, word [esp + ecx + 0x1ee]
lea ecx, [ecx + 2]
mov word [esp + ecx + 0x62e], ax
test ax, ax
jne 0x4caa30
lea eax, [esp + 0x630]
push 0x506978
push eax
call dword [esp + 0x2c]
lea ecx, [esp + 0x63a]
add esp, 8
lea edx, [esp + 0x1ee]
lea ecx, [ecx + eax*2]
sub edx, ecx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x4caa70
lea eax, [esp + 0x1ec]
push 0x29
push eax
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
mov dword [eax], 0x20
mov ecx, dword fs:[0x2c]
mov eax, dword [edi + ecx]
cmp byte [eax + 0x2198], 0
jne 0x4caab7
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [edi + ecx]
lea edx, [esp + 0x1ec]
lea esi, [edx + 2]
mov ecx, dword [eax + 0x298]
nop word [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4caad0
push 0
sub edx, esi
push 0
sar edx, 1
push 0
push 2
lea eax, [edx - 2]
push eax
lea eax, [esp + 0x202]
push eax
call fcn.0045d0e0
mov ecx, dword fs:[0x2c]
mov dword [esp + 0x58], eax
mov eax, dword [edi + ecx]
cmp byte [eax + 0x2198], 0
jne 0x4cab1b
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov eax, dword [edi + ecx]
mov eax, dword [eax + 0x29c]
mov dword [eax + 0x18], ebp
mov ebp, dword [0x62271c]
jmp 0x4cabbe
mov ebp, dword [0x62271c]
mov eax, dword fs:[0x2c]
lea edi, [ebp*4]
mov eax, dword [edi + eax]
cmp byte [eax + 0x2198], 0
jne 0x4cab56
call fcn.004ebad3
mov eax, dword fs:[0x2c]
mov ecx, dword [edi + eax]
mov eax, dword [ecx + 0x29c]
cmp dword [eax + 0x18], 0
je 0x4cabbe
cmp byte [ecx + 0x2198], 0
jne 0x4cab79
call fcn.004ebad3
mov eax, dword fs:[0x2c]
lea edx, [esp + 0x1ec]
lea esi, [edx + 2]
mov eax, dword [edi + eax]
mov ecx, dword [eax + 0x298]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4cab92
push 0
sub edx, esi
push 0
sar edx, 1
push 0
push 2
lea eax, [edx - 2]
push eax
lea eax, [esp + 0x202]
push eax
call fcn.0045d0e0
mov dword [esp + 0x58], eax
cmp dword [esp + 0x58], 0
jne 0x4cac29
mov eax, dword fs:[0x2c]
mov eax, dword [edi + eax]
cmp byte [eax + 0x2198], 0
jne 0x4cabdc
call fcn.004ebad3
mov eax, dword fs:[0x2c]
lea edx, [esp + 0x1ec]
lea esi, [edx + 2]
mov eax, dword [edi + eax]
mov ecx, dword [eax + 0x298]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4cabf5
push 0
sub edx, esi
push 0
sar edx, 1
push 0
push 1
lea eax, [edx - 2]
push eax
lea eax, [esp + 0x202]
push eax
call fcn.0045d0e0
mov dword [esp + 0x58], eax
test eax, eax
je 0x4caf22
push 0
lea eax, [esp + 0x5c]
push 0
push eax
call fcn.004a2e60
push eax
call fcn.004d74e0
movzx ebp, al
add esp, 0x10
mov eax, dword [esp + 0x30]
mov dword [esp + 0x1c], ebp
test eax, eax
jle 0x4cac59
cmp ebp, eax
jle 0x4cac59
mov ebp, eax
mov dword [esp + 0x1c], eax
mov edi, dword [esp + 0x28]
mov ecx, dword [edi]
cmp ebp, ecx
jle 0x4cac67
mov dword [edi], ebp
mov ecx, ebp
test bl, bl
je 0x4cac71
cmp byte [esp + 0x18], bl
jne 0x4cac91
mov esi, dword [esp + 0x14]
test esi, esi
je 0x4cac95
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x4cac95
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x14], esi
jmp 0x4cac95
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xbc]
mov eax, esi
cdq
push 3
mov dword [ecx], eax
lea eax, [esp + 0xbc]
push eax
lea eax, [esp + 0xa0]
mov dword [ecx + 4], edx
push eax
call fcn.004c9a70
add esp, 0xc
cmp dword [esp + 0xa0], 1
jne 0x4caf67
test bl, bl
je 0x4cacd6
cmp byte [esp + 0x18], bl
jne 0x4cacf8
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x98]
test eax, eax
je 0x4cacef
mov ecx, edx
dec eax
sub ecx, esi
imul ecx, eax
jmp 0x4cacf1
xor ecx, ecx
lea esi, [edx + ecx]
mov dword [esp + 0x14], esi
mov edx, dword [esp + 0x20]
test edx, edx
je 0x4cad2e
mov ecx, dword [esp + edx*4 + 0x108]
mov eax, esi
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0xc8]
jle 0x4cad1b
mov dword [esp + edx*4 + 0xc8], eax
cmp byte [esp + edx + 0x188], 0
jne 0x4cad2e
mov dword [esp + 0x14], ecx
mov byte [esp + 0x18], 0
mov ebp, dword [esp + 0x10]
push 0x7d
push ebp
call sub.VCRUNTIME140.dll_wcschr
add esp, 8
test eax, eax
je 0x4cadeb
movzx eax, word [ebp]
mov edi, ebp
test ax, ax
je 0x4ca57a
mov esi, eax
nop word [eax + eax]
mov ecx, 0x506894
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4cad96
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4cad70
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4cad60
jmp 0x4ca57a
push 0x7d
push ebp
call sub.VCRUNTIME140.dll_wcschr
movzx ecx, word [ebp]
add esp, 8
mov ebx, eax
mov edi, ebp
test cx, cx
je 0x4cadeb
mov esi, ecx
mov ecx, 0x506894
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4cade3
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4cadc0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4cadb0
jmp 0x4cadeb
cmp ebx, edi
jb 0x4ca57a
movzx eax, word [ebp]
mov edi, ebp
test ax, ax
je 0x4cae35
mov esi, eax
nop dword [eax + eax]
mov ecx, 0x506894
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4ca590
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4cae10
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4cae00
mov ecx, ebp
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4cae40
sub ecx, edx
sar ecx, 1
lea ebp, [ebp + ecx*2]
cmp word [ebp], 0
mov dword [esp + 0x10], ebp
je 0x4cb012
mov ecx, dword [esp + 0x54]
jmp 0x4c9dc4
mov ecx, dword fs:[0x2c]
mov esi, dword [0x62271c]
mov eax, dword [ecx + esi*4]
cmp byte [eax + 0x2198], 0
jne 0x4cae90
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + esi*4]
lea eax, [esp + 0x630]
push 0
push 0
push 9
mov ecx, dword [ecx + 0x298]
push eax
push 0x506920
call fcn.0046ce10
jmp 0x4cb045
cmp byte [edx + 0x2198], 0
jne 0x4caecb
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov ebx, dword [0x62271c]
mov eax, dword [ecx + ebx*4]
mov eax, dword [eax + 0x29c]
mov dword [eax + 0x18], ebp
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + ebx*4]
cmp byte [eax + 0x2198], 0
jne 0x4caefc
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + ebx*4]
lea eax, [esp + 0x1ec]
push 0
push 0
push 9
mov ecx, dword [ecx + 0x298]
push eax
push str.Variable_was_not_found_in_function.
call fcn.0046ce10
jmp 0x4cb045
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + ebp*4]
cmp byte [eax + 0x2198], 0
jne 0x4caf41
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
mov ecx, dword [ecx + ebp*4]
lea eax, [esp + 0x1ec]
push 0
push 0
push 9
mov ecx, dword [ecx + 0x298]
push eax
push str.Invalid_structure_definition.
call fcn.0046ce10
jmp 0x4cb045
mov ecx, dword fs:[0x2c]
mov esi, dword [0x62271c]
mov eax, dword [ecx + esi*4]
cmp byte [eax + 0x2198], 0
jne 0x4caf8c
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
push 0
push 0
push 9
lea eax, [esp + 0x1f8]
push eax
jmp 0x4caffd
mov ecx, dword fs:[0x2c]
mov esi, dword [0x62271c]
mov eax, dword [ecx + esi*4]
cmp byte [eax + 0x2198], 0
jne 0x4cafc1
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
push 0
push 0
push 9
lea eax, [esp + 0x63c]
push eax
jmp 0x4caffd
mov esi, dword [0x62271c]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + esi*4]
cmp byte [eax + 0x2198], 0
jne 0x4caff6
call fcn.004ebad3
mov ecx, dword fs:[0x2c]
push 0
push 0
push 9
push ebx
mov ecx, dword [ecx + esi*4]
push str.Invalid_structure_definition.
mov ecx, dword [ecx + 0x298]
call fcn.0046ce10
jmp 0x4cb045
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4cb032
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x4cb032
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
mov ecx, dword [esp + 0x44]
mov eax, ebx
cdq
mov dword [ecx + 8], 1
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x8634]
pop ebp
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.004ebadf
add esp, 0x8628
ret
call fcn.004ebef9
int3