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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x8638
call fcn.004cc6a0
push esi
push edi
push 0x40
lea eax, [esp + 0x174]
mov dword [esp + 0x10], 0
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x100]
push 0x40
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x1b0]
xorps xmm0, xmm0
movaps xmmword [esp + 0xa0], xmm0
push 0x40
push 0
push eax
call sub.VCRUNTIME140.dll_memset
xor eax, eax
movq xmm0, qword [str._UInt]
mov dword [esp + 0x50], eax
add esp, 0xc
mov dword [esp + 0x2c], eax
xor esi, esi
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x4c]
mov dword [esp + 0x30], eax
cdq
mov dword [esp + 0x80], eax
lea eax, [esp + 0x50]
mov dword [esp + 0x90], eax
lea eax, [esp + 0xb8]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x98], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x9c], eax
mov eax, dword [0x4f01c4]
mov dword [esp + 0x1f8], eax
mov ax, word [0x4f01c8]
push 0x436
mov word [esp + 0x200], ax
lea eax, [esp + 0x202]
push esi
push eax
mov dword [esp + 0x4c], 0
mov dword [esp + 0x44], esi
mov dword [esp + 0x70], 1
mov dword [esp + 0x64], 4
mov dword [esp + 0xcc], 1
mov dword [esp + 0x94], 1
mov dword [esp + 0x90], edx
mov dword [esp + 0x84], 1
movq qword [esp + 0x1fc], xmm0
call sub.VCRUNTIME140.dll_memset
mov edi, dword [ebp + 0xc]
add esp, 0xc
mov eax, 0x20
mov byte [esp + 0x14], 0
mov word [esp + 0x1f0], ax
mov dword [edi + 8], esi
mov esi, dword [ebp + 0x10]
mov dword [edi], 0x4cec30
mov ecx, dword [esi]
call fcn.00479e00
test eax, eax
je 0x4a0c34
mov dword [edi + 8], 1
mov ecx, dword [esi]
call fcn.00479e00
cmp dword [ebp + 0x14], 1
mov edi, eax
jle case.0x4a0b62.6
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 8]
dec eax
cmp eax, 5
ja case.0x4a0b62.3
jmp dword [eax*4 + 0x4a1ff8]
mov eax, dword [edi + 0x18]
mov esi, dword [ecx]
mov ecx, dword [ecx + 4]
cdq
add eax, esi
adc edx, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 4], edx
mov dword [ecx], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [ecx + 4]
test eax, eax
je case.0x4a0b62.3
mov ecx, dword [eax + 4]
mov esi, dword [eax]
mov eax, dword [edi + 0x18]
cdq
add eax, esi
adc edx, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 4], edx
mov dword [ecx], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
movsd xmm0, qword [ecx]
call fcn.004cc910
mov esi, eax
mov ecx, edx
mov eax, dword [edi + 0x18]
cdq
add eax, esi
adc edx, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 4], edx
mov dword [ecx], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ecx]
push 1
call fcn.0042a980
mov esi, eax
mov ecx, edx
mov eax, dword [edi + 0x18]
cdq
add eax, esi
adc edx, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 4], edx
mov dword [ecx], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [ecx]
call fcn.004051f0
mov esi, eax
mov ecx, edx
mov eax, dword [edi + 0x18]
cdq
add eax, esi
adc edx, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 4], edx
mov dword [ecx], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x18]
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
cdq
add eax, esi
adc edx, ecx
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 4], edx
mov dword [ecx], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x14]
cmp edi, 1
jle 0x4a0cb3
mov ecx, dword [esi + 4]
call fcn.00479a20
test eax, eax
je 0x4a0cb3
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 8]
dec eax
cmp eax, 5
ja case.0x4a0c54.3
jmp dword [eax*4 + 0x4a2010]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0xc], eax
jmp 0x4a0ca2
mov eax, dword [ecx + 4]
test eax, eax
je case.0x4a0c54.3
mov ecx, dword [eax]
jmp 0x4a0c9e
movsd xmm0, qword [ecx]
call fcn.004cc910
jmp 0x4a0c9c
mov ecx, dword [ecx]
push 0
call fcn.0042a980
jmp 0x4a0c9c
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov ecx, dword [esp + 0x20]
jmp 0x4a0c9e
mov ecx, dword [ecx]
call fcn.004051f0
mov ecx, eax
mov dword [esp + 0xc], ecx
mov eax, ecx
cdq
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], edx
cmp edi, 2
jle 0x4a0d2f
mov ecx, dword [esi + 8]
call fcn.00479a20
test eax, eax
je 0x4a0d2f
mov ecx, dword [esi + 8]
mov eax, dword [ecx + 8]
dec eax
cmp eax, 5
ja case.0x4a0cd0.3
jmp dword [eax*4 + 0x4a2028]
mov eax, dword [ecx]
mov ecx, eax
mov dword [esp + 0x30], eax
jmp 0x4a0d1e
mov eax, dword [ecx + 4]
test eax, eax
je case.0x4a0cd0.3
mov ecx, dword [eax]
jmp 0x4a0d1a
movsd xmm0, qword [ecx]
call fcn.004cc910
jmp 0x4a0d18
mov ecx, dword [ecx]
push 1
call fcn.0042a980
jmp 0x4a0d18
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov ecx, dword [esp + 0x20]
jmp 0x4a0d1a
mov ecx, dword [ecx]
call fcn.004051f0
mov ecx, eax
mov dword [esp + 0x30], ecx
mov eax, ecx
cdq
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov eax, dword [esi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a0d39.1
jmp dword [ecx*4 + 0x4a2040]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401690
jmp 0x4a0d56
mov eax, dword [eax]
jmp 0x4a0d56
mov eax, 0x4cec30
mov ecx, eax
mov dword [esp + 8], eax
call fcn.00419ea0
mov ecx, eax
mov eax, dword [0x4f8174]
mov dword [esp + 0x18], ecx
cmp byte [eax + 0xf5], 0x44
jne 0x4a0d8d
push 0xa
lea eax, [esp + 0xdc]
push eax
push ecx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itow]
add esp, 0xc
mov ecx, eax
jmp 0x4a0dfc
test ecx, ecx
jns 0x4a0d9e
mov eax, 0x2d
mov word [esp + 0xd8], ax
test ecx, ecx
lea edx, [esp + 0xda]
lea eax, [esp + 0xd8]
cmovs eax, edx
mov edx, 0x30
lea edi, [eax + 2]
push 0x10
mov word [eax], dx
mov eax, 0x78
mov word [edi], ax
mov eax, ecx
neg eax
add edi, 2
test ecx, ecx
push edi
cmovns eax, ecx
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itow]
mov eax, dword [0x4f8174]
add esp, 0xc
cmp byte [eax + 0xf5], 0x48
jne 0x4a0df2
push edi
call dword [sym.imp.USER32.dll_CharUpperW]
mov edi, dword [ebp + 0x14]
lea ecx, [esp + 0xd8]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a0e00
mov eax, dword [esp + 8]
sub ecx, edx
sar ecx, 1
cmp word [eax + ecx*2], 0x3a
jne 0x4a0e5c
cmp dword [esp + 0x18], 0
jle 0x4a0e5c
lea ecx, [esp + 0xd8]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a0e30
mov eax, dword [esp + 8]
sub ecx, edx
sar ecx, 1
lea eax, [eax + ecx*2]
add eax, 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
cdq
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
jmp 0x4a0e6d
xorps xmm0, xmm0
mov dword [esp + 0x18], 0
movlpd qword [esp + 0x70], xmm0
cmp edi, 3
jle 0x4a0edd
mov ecx, dword [esi + 0xc]
call fcn.00479a20
test eax, eax
je 0x4a0edd
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 8]
dec eax
cmp eax, 5
ja case.0x4a0e8a.3
jmp dword [eax*4 + 0x4a2058]
mov esi, dword [ecx]
jmp 0x4a0ece
mov eax, dword [ecx + 4]
test eax, eax
je case.0x4a0e8a.3
mov esi, dword [eax]
jmp 0x4a0ece
movsd xmm0, qword [ecx]
call fcn.004cc910
jmp 0x4a0ecc
mov ecx, dword [ecx]
push 1
call fcn.0042a980
jmp 0x4a0ecc
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov esi, dword [esp + 0x20]
jmp 0x4a0ece
mov ecx, dword [ecx]
call fcn.004051f0
mov esi, eax
mov eax, esi
mov dword [esp + 0x18], esi
cdq
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov edi, dword [esp + 8]
cmp word [edi], 0
je 0x4a1fbe
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 + 0x3c], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
mov dword [esp + 0x48], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
mov dword [esp + 0x6c], eax
mov eax, dword [sym.imp.VCRUNTIME140.dll_wcschr]
mov dword [esp + 0x1c], eax
mov eax, dword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x68], eax
push 2
push 0x4f01cc
push edi
call ecx
add esp, 0xc
test eax, eax
jne 0x4a0fb0
mov eax, dword [esp + 8]
movzx eax, word [eax]
mov ecx, eax
mov dword [esp + 0x34], ecx
test ax, ax
je 0x4a0f85
mov esi, eax
nop word [eax + eax]
mov ecx, 0x4ef30c
mov edx, 0xa
nop word [eax + eax]
cmp si, dx
je 0x4a105a
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a0f60
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a0f50
mov edi, dword [esp + 8]
mov ecx, edi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a0f90
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
mov dword [esp + 8], edi
cmp word [edi], 0
je 0x4a1fbe
mov esi, dword [esp + 8]
movzx eax, word [esi]
test ax, ax
je 0x4a0ff9
mov esi, eax
nop
mov ecx, str._n_r_t
mov edx, 0xa
nop word [eax + eax]
cmp si, dx
je 0x4a10b0
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a0fd0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a0fc0
mov esi, dword [esp + 8]
push 0x7b
push esi
call dword [esp + 0x24]
add esp, 8
test eax, eax
je 0x4a1129
movzx eax, word [esi]
mov edi, esi
test ax, ax
je 0x4a11b7
mov esi, eax
nop dword [eax + eax]
mov ecx, 0x4f01ac
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4a10ca
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a1030
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a1020
jmp 0x4a11b3
mov edi, dword [esp + 8]
mov eax, dword [esp + 0x34]
mov dword [esp + 8], edi
movzx esi, ax
nop dword [eax]
mov ecx, 0x4ef30c
mov edx, 0xa
nop word [eax + eax]
cmp si, dx
je 0x4a0fa6
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a1080
movzx eax, word [edi + 2]
add edi, 2
mov dword [esp + 8], edi
mov esi, eax
test ax, ax
jne 0x4a1070
xor edi, edi
jmp 0x4a0fa2
mov esi, dword [esp + 8]
cmp esi, edi
jne 0x4a0ff9
mov edi, esi
add edi, 2
mov dword [esp + 8], edi
jmp 0x4a1335
mov esi, dword [esp + 8]
push 0x7b
push esi
call dword [esp + 0x24]
mov dword [esp + 0x3c], eax
add esp, 8
movzx eax, word [esi]
mov edi, esi
test ax, ax
je 0x4a1129
mov esi, eax
nop dword [eax + eax]
mov ecx, 0x4f01ac
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4a11a9
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a1100
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a10f0
mov esi, dword [esp + 8]
movzx eax, word [esi]
cmp eax, 0x7d
jne 0x4a135b
mov ecx, dword [esp + 0x2c]
mov edi, dword [esp + 0xc]
mov eax, edi
mov edx, dword [esp + ecx*4 + 0x170]
sub eax, edx
mov ecx, dword [esp + ecx*4 + 0x100]
cmp eax, ecx
jle 0x4a1164
mov esi, dword [esp + 0x2c]
mov ecx, eax
mov dword [esp + esi*4 + 0x100], eax
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x2c]
cmp eax, 1
jle 0x4a12ae
cmp byte [esp + eax + 0x9f], 0
je 0x4a12ae
mov esi, dword [esp + eax*4 + 0x1b0]
mov eax, edi
cdq
idiv esi
test edx, edx
je 0x4a119c
mov eax, esi
sub eax, edx
cdq
idiv esi
add edi, edx
mov dword [esp + 0xc], edi
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x2c]
jmp 0x4a12b4
cmp dword [esp + 0x34], edi
jae 0x4a1125
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x2c]
mov eax, ecx
inc ecx
mov dword [esp + 0x2c], ecx
test eax, eax
jne 0x4a11ca
mov dword [esp + 0x44], eax
mov edi, dword [esp + 0x68]
push str.struct
push esi
call edi
add esp, 8
test eax, eax
je 0x4a11fd
push str.struct
push esi
call edi
mov edi, dword [esp + 0x10]
mov esi, eax
push 0x7b
push edi
call dword [esp + 0x2c]
add esp, 0x10
cmp esi, eax
jae 0x4a1201
mov al, 1
jmp 0x4a1203
mov edi, dword [esp + 8]
xor al, al
mov ecx, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
mov byte [esp + ecx + 0xa0], al
test esi, esi
jle 0x4a122c
mov ecx, edi
call fcn.004a0620
movzx eax, al
cmp eax, esi
jle 0x4a122c
mov ecx, esi
mov dword [esp + 0x38], esi
jmp 0x4a123a
mov ecx, edi
call fcn.004a0620
movzx ecx, al
mov dword [esp + 0x38], ecx
mov esi, dword [esp + 0xc]
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x4a1254
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0xc], esi
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
cmp eax, ecx
jle 0x4a1270
mov ecx, dword [esp + 0x18]
test ecx, ecx
jle 0x4a126a
cmp eax, ecx
jg 0x4a126c
mov ecx, eax
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x2c]
push 0x7b
push edi
mov dword [edx], 0
mov dword [esp + eax*4 + 0x1b8], ecx
mov dword [esp + eax*4 + 0x178], esi
mov dword [esp + eax*4 + 0x108], 0
mov byte [esp + 0x1c], 0
call dword [esp + 0x24]
add esp, 8
lea edi, [eax + 2]
mov dword [esp + 8], edi
jmp 0x4a1335
mov edi, edx
mov dword [esp + 0xc], edi
mov edx, dword [esp + 0x30]
mov eax, dword [esp + eax*4 + 0x1b0]
cmp eax, dword [edx]
jle 0x4a12c5
mov dword [edx], eax
mov eax, dword [esp + 0x44]
cmp ecx, eax
cmovg eax, ecx
sub dword [esp + 0x2c], 1
mov dword [esp + 0x44], eax
jne 0x4a12df
add edi, eax
mov dword [esp + 0xc], edi
add esi, 2
mov byte [esp + 0x14], 0
mov dword [esp + 8], esi
mov edi, esi
je 0x4a134e
movzx eax, word [esi]
test ax, ax
je 0x4a1331
mov esi, eax
nop dword [eax]
mov ecx, 0x4f01ac
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4a1348
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a1310
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a1300
mov edi, dword [esp + 8]
cmp word [edi], 0
je 0x4a1fbe
mov ecx, dword [esp + 0x20]
jmp 0x4a0f22
cmp dword [esp + 8], edi
jne 0x4a1331
mov edi, dword [esp + 8]
add edi, 2
mov dword [esp + 8], edi
jmp 0x4a1335
xor edi, edi
mov dword [esp + 0x34], edi
mov edi, esi
test ax, ax
je 0x4a13a9
mov esi, eax
nop word [eax + eax]
mov ecx, 0x4f01f0
mov edx, 0x7d
nop word [eax + eax]
cmp si, dx
je 0x4a1443
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a1380
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a1370
mov esi, dword [esp + 8]
mov ecx, esi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a13b0
sub ecx, edx
sar ecx, 1
cmp ecx, 0x4000
ja 0x4a1fa8
lea edx, [esp + 0x638]
mov ecx, esi
sub edx, esi
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4a13e0
cmp word [esp + 0x638], 0
je 0x4a149b
lea ecx, [esp + 0x638]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a1410
sub ecx, edx
sar ecx, 1
lea eax, [esp + ecx*2 + 0x636]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x4a1433
cmp ecx, 9
jne 0x4a1484
lea edx, [esp + 0x638]
cmp eax, edx
je 0x4a148c
sub eax, 2
jmp 0x4a1426
mov edi, dword [esp + 8]
push 0x4f01f0
push edi
call dword [esp + 0x44]
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x4a1fa4
push esi
lea eax, [esp + 0x63c]
push edi
push eax
call dword [esp + 0x54]
add esp, 0xc
xor eax, eax
mov word [esp + esi*2 + 0x638], ax
mov esi, edi
jmp 0x4a13f0
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x4a149b
cmp ecx, 0x20
je 0x4a1496
cmp ecx, 9
jne 0x4a149b
xor ecx, ecx
mov word [eax], cx
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x638]
push 0x5b
push eax
call edi
add esp, 8
test eax, eax
je 0x4a152a
push 0x14
lea eax, [esp + 0x63c]
push 0x5b
push eax
call edi
add esp, 8
push eax
lea eax, [esp + 0x14c]
push eax
call dword [esp + 0x54]
add esp, 0xc
lea eax, [esp + 0x144]
push 0x4f0234
push eax
call dword [esp + 0x44]
xor ecx, ecx
mov word [esp + eax*2 + 0x14e], cx
lea ecx, [esp + 0x14e]
call fcn.004051f0
push 0
push 0
push 0x4001
push 1
mov edi, eax
lea edx, [esp + 0x15c]
push 1
push 0x4cec30
lea ecx, [esp + 0x658]
mov dword [esp + 0x54], edi
call fcn.004b0de0
add esp, 0x20
jmp 0x4a152e
mov edi, dword [esp + 0x34]
lea eax, [esp + 0x638]
push 0x5b
push eax
call dword [esp + 0x24]
add esp, 8
test eax, eax
jne 0x4a1f87
lea eax, [esp + 0x638]
push 0x2a
push eax
call dword [esp + 0x24]
add esp, 8
test eax, eax
je 0x4a173b
lea eax, [esp + 0x638]
push 0x3a
push eax
call dword [esp + 0x24]
add esp, 8
test eax, eax
jne 0x4a1f3e
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4a158e
cmp eax, 4
jge 0x4a158e
mov ecx, eax
mov dword [esp + 0x38], eax
jmp 0x4a1597
mov ecx, 4
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0xc]
cdq
idiv ecx
test edx, edx
je 0x4a15ad
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add dword [esp + 0xc], edx
test edi, edi
mov eax, 1
cmovne eax, edi
mov edi, dword [esp + 0xc]
lea edi, [edi + eax*4]
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], edi
cmp ecx, dword [eax]
jle 0x4a15cc
mov dword [eax], ecx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x4a1605
mov edx, dword [esp + eax*4 + 0x170]
mov ecx, edi
mov eax, dword [esp + eax*4 + 0x100]
sub ecx, edx
cmp ecx, eax
cmovle ecx, eax
mov eax, dword [esp + 0x2c]
cmp byte [esp + eax + 0xa0], 0
mov dword [esp + eax*4 + 0x100], ecx
cmove edi, edx
mov dword [esp + 0xc], edi
push 0x7d
push esi
call dword [esp + 0x24]
add esp, 8
test eax, eax
je 0x4a16d1
movzx eax, word [esi]
mov edi, esi
test ax, ax
je 0x4a1f01
mov esi, eax
nop word [eax + eax]
mov ecx, 0x4f01ac
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4a1666
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a1640
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a1630
jmp 0x4a1f01
mov esi, dword [esp + 8]
push 0x7d
push esi
call dword [esp + 0x24]
mov dword [esp + 0x3c], eax
add esp, 8
movzx eax, word [esi]
mov edi, esi
test ax, ax
je 0x4a16d1
mov esi, eax
nop dword [eax]
nop dword [eax + eax]
mov ecx, 0x4f01ac
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4a16c3
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a16a0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a1690
jmp 0x4a16cd
cmp dword [esp + 0x34], edi
jb 0x4a1f01
mov esi, dword [esp + 8]
movzx eax, word [esi]
mov edi, esi
test ax, ax
je 0x4a1715
mov esi, eax
nop dword [eax]
mov ecx, 0x4f01ac
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4a1f1e
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a16f0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a16e0
mov edi, dword [esp + 8]
mov ecx, edi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a1720
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
mov dword [esp + 8], edi
jmp 0x4a1335
mov ax, word [esp + 0x638]
lea edi, [esp + 0x638]
test ax, ax
je 0x4a1793
movzx esi, ax
mov ecx, 0x4e5614
mov edx, 0x20
nop dword [eax]
cmp si, dx
je 0x4a1783
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a1760
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a1752
jmp 0x4a178b
test edi, edi
jne 0x4a1876
mov ax, word [esp + 0x638]
lea edi, [esp + 0x638]
test ax, ax
je 0x4a17db
movzx esi, ax
mov ecx, 0x4f01f0
mov edx, 0x7d
nop dword [eax]
cmp si, dx
je 0x4a17d3
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a17b0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a17a2
jmp 0x4a17db
test edi, edi
jne 0x4a1876
mov eax, dword [esp + 8]
mov edi, eax
movzx eax, word [eax]
test ax, ax
je 0x4a1821
mov esi, eax
nop dword [eax + eax]
mov ecx, 0x4f01f0
mov edx, 0x7d
nop word [eax + eax]
cmp si, dx
je 0x4a1828
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a1800
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a17f0
cmp dword [esp + 0xc], 0
je 0x4a1876
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x638]
push 0x3a
push eax
call edi
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x4a19d3
mov edx, dword [esp + 0x14]
xor esi, esi
movzx eax, dl
shr eax, 3
cmp eax, dword [esp + 0x40]
movzx edx, dl
cmove edx, esi
add ecx, 2
mov dword [esp + 0x14], edx
call fcn.00419ea0
mov dl, al
add byte [esp + 0x14], dl
mov byte [esp + 0x13], dl
jmp 0x4a19dd
mov edi, dword [esp + 0x3c]
lea eax, [esp + 0x638]
push 0x4f0278
push eax
call edi
add esp, 8
cmp eax, 0x218
ja 0x4a1f87
lea esi, [esp + 0x638]
nop
movzx eax, word [esi]
cmp eax, 0x20
je 0x4a18ad
cmp eax, 9
jne 0x4a18b2
add esi, 2
jmp 0x4a18a0
test ax, ax
je 0x4a1901
mov edi, eax
nop dword [eax]
mov ecx, 0x4e5614
mov edx, 0x20
nop word [eax + eax]
cmp di, dx
je 0x4a18f3
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a18d0
movzx eax, word [esi + 2]
add esi, 2
mov edi, eax
test ax, ax
jne 0x4a18c0
jmp 0x4a18fd
cmp word [esi], 0x3a
je 0x4a1990
mov edi, dword [esp + 0x3c]
lea ecx, [esp + 0x1f0]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a1910
sub ecx, edx
sar ecx, 1
lea eax, [ecx - 2]
push eax
lea eax, [esp + 0x63c]
push eax
lea eax, [esp + 0x1fa]
push eax
call dword [esp + 0x78]
mov ecx, dword [esp + 0x20]
add esp, 0xc
xor edx, edx
movzx ecx, cl
test eax, eax
lea eax, [esp + 0x638]
cmovne ecx, edx
push 0x4f0278
push eax
mov byte [esp + 0x1c], cl
call edi
push eax
lea eax, [esp + 0x644]
push eax
lea eax, [esp + 0x202]
push eax
call dword [esp + 0x5c]
add esp, 0x14
lea eax, [esp + 0x638]
push 0x4f0278
push eax
call edi
add esp, 8
mov dword [esp + eax*2 + 0x1f2], 0x20
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x638]
push 0x3a
push eax
call edi
add esp, 8
test eax, eax
je 0x4a19d3
lea ecx, [eax + 2]
call fcn.00419ea0
mov byte [esp + 0x13], al
xor edx, edx
mov eax, dword [esp + 0x14]
movzx ecx, al
shr ecx, 3
cmp ecx, dword [esp + 0x40]
movzx eax, al
cmovne edx, eax
add dl, byte [esp + 0x13]
mov byte [esp + 0x14], dl
jmp 0x4a19dd
mov byte [esp + 0x14], 0
mov byte [esp + 0x13], 0
mov ecx, str._bool
lea eax, [esp + 0x1f0]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4a1a16
test dx, dx
je 0x4a1a12
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4a1a16
add eax, 4
add ecx, 4
test dx, dx
jne 0x4a19f0
xor eax, eax
jmp 0x4a1a1b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4a1a2a
mov edx, 1
mov dword [esp + 0x40], edx
jmp 0x4a1a64
xor esi, esi
nop dword [eax]
mov ecx, dword [esi*4 + 0x4f1b50]
lea edx, [esp + 0x1f0]
call fcn.004b09f0
test eax, eax
jne 0x4a1a4f
inc esi
cmp esi, 8
jl 0x4a1a30
jmp 0x4a1a55
lea eax, [esi + 1]
movzx eax, ax
movsx edx, ax
mov dword [esp + 0x40], edx
test edx, edx
je 0x4a1b7a
mov cl, byte [esp + 0x13]
test cl, cl
je 0x4a1a74
mov eax, dword [esp + 0x14]
cmp al, cl
jne 0x4a1ad2
cmp edx, 1
jle 0x4a1ab1
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4a1a8d
cmp edx, eax
jle 0x4a1a8d
mov esi, eax
mov dword [esp + 0x38], esi
jmp 0x4a1a93
mov esi, edx
mov dword [esp + 0x38], edx
mov edi, dword [esp + 0xc]
mov eax, edi
cdq
idiv esi
test edx, edx
je 0x4a1aad
mov eax, esi
sub eax, edx
cdq
idiv esi
add edi, edx
mov dword [esp + 0xc], edi
mov edx, dword [esp + 0x40]
test cl, cl
je 0x4a1abd
mov eax, dword [esp + 0x14]
cmp al, cl
jne 0x4a1ad2
mov edi, dword [esp + 0x34]
mov eax, 1
test edi, edi
cmovne eax, edi
imul eax, edx
add dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x38]
cmp esi, dword [eax]
jle 0x4a1ae0
mov dword [eax], esi
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x4a1b1d
mov edx, dword [esp + edi*4 + 0x170]
mov ecx, esi
mov eax, dword [esp + edi*4 + 0x100]
sub ecx, edx
cmp ecx, eax
cmovle ecx, eax
cmp byte [esp + edi + 0xa0], 0
mov dword [esp + edi*4 + 0x100], ecx
jne 0x4a1b1d
mov dword [esp + 0xc], edx
mov byte [esp + 0x14], 0
mov esi, dword [esp + 8]
push 0x7d
push esi
call dword [esp + 0x24]
add esp, 8
test eax, eax
je 0x4a1e89
movzx eax, word [esi]
mov edi, esi
test ax, ax
je 0x4a1f01
mov esi, eax
mov ecx, 0x4f01ac
mov edx, 0x3b
nop dword [eax]
cmp si, dx
je 0x4a1e27
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a1b50
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a1b43
jmp 0x4a1f01
lea eax, [esp + 0x1f0]
mov dword [esp + 0x50], 0
push 0x28
push eax
call edi
add esp, 8
test eax, eax
mov eax, dword [0x4f8174]
je 0x4a1ce7
mov esi, dword [eax + 0xb4]
lea eax, [esp + 0x1f0]
push 0
push 0x4f0290
push eax
call dword [esp + 0x48]
add esp, 8
dec eax
mov ecx, 0x4fcc10
push eax
lea eax, [esp + 0x1fa]
push eax
call fcn.0043dcb0
mov ecx, dword [0x4f8174]
mov dword [ecx + 0xb4], eax
test eax, eax
je 0x4a1f5b
xor ecx, ecx
movzx eax, word [esp + ecx + 0x1f2]
lea ecx, [ecx + 2]
mov word [esp + ecx + 0x636], ax
test ax, ax
jne 0x4a1be4
lea eax, [esp + 0x638]
push 0x4f0290
push eax
call dword [esp + 0x44]
lea ecx, [esp + 0x642]
add esp, 8
lea edx, [esp + 0x1f2]
lea ecx, [ecx + eax*2]
sub edx, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4a1c23
lea eax, [esp + 0x1f0]
push 0x29
push eax
call edi
lea ecx, [esp + 0x1f8]
add esp, 8
lea edx, [ecx + 2]
mov dword [eax], 0x20
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a1c52
sub ecx, edx
push 0
sar ecx, 1
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4fcc10
push eax
lea eax, [esp + 0x202]
push eax
call fcn.0043f980
mov dword [esp + 0x50], eax
mov eax, dword [0x4f8174]
mov dword [eax + 0xb4], esi
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x4a1cd7
lea ecx, [esp + 0x1f0]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a1ca0
sub ecx, edx
push 0
sar ecx, 1
push 1
push 0
lea eax, [ecx - 2]
mov ecx, 0x4fcc10
push eax
lea eax, [esp + 0x202]
push eax
call fcn.0043f980
mov dword [esp + 0x50], eax
test eax, eax
je 0x4a1f7e
mov ecx, dword [esp + 0x58]
cmp ecx, 5
ja case.0x4a1ce0.1
jmp dword [ecx*4 + 0x4a2070]
cmp dword [eax + 0xb4], 0
je 0x4a1c8c
lea ecx, [esp + 0x1f0]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a1d00
sub ecx, edx
push 0
sar ecx, 1
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4fcc10
push eax
lea eax, [esp + 0x202]
push eax
call fcn.0043f980
mov dword [esp + 0x50], eax
jmp 0x4a1c90
push 0
push 1
mov ecx, eax
call fcn.00401690
jmp case.0x4a1ce0.0
mov eax, 0x4cec30
mov ecx, eax
call fcn.004a0620
movzx esi, al
mov eax, dword [esp + 0x18]
mov dword [esp + 0x38], esi
test eax, eax
jle 0x4a1d66
cmp esi, eax
jle 0x4a1d66
mov esi, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
mov ecx, dword [eax]
cmp esi, ecx
jle 0x4a1d74
mov dword [eax], esi
mov ecx, esi
mov al, byte [esp + 0x13]
test al, al
je 0x4a1d82
cmp byte [esp + 0x14], al
jne 0x4a1da2
mov esi, dword [esp + 0xc]
test esi, esi
je 0x4a1da6
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x4a1da6
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0xc], esi
jmp 0x4a1da6
mov esi, dword [esp + 0xc]
mov ecx, dword [esp + 0x94]
mov eax, esi
cdq
push 4
mov dword [ecx], eax
lea eax, [esp + 0x94]
push eax
lea eax, [esp + 0xd0]
mov dword [ecx + 4], edx
push eax
lea eax, [esp + 0x70]
push eax
call fcn.004a09d0
add esp, 0x10
cmp dword [esp + 0xd0], 1
jne 0x4a1f7e
mov al, byte [esp + 0x13]
test al, al
je 0x4a1df4
cmp byte [esp + 0x14], al
jne 0x4a1ae4
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0xc8]
test edi, edi
je 0x4a1e19
mov ecx, edx
lea eax, [edi - 1]
sub ecx, esi
imul ecx, eax
lea esi, [ecx + edx]
mov dword [esp + 0xc], esi
jmp 0x4a1ae4
xor ecx, ecx
lea esi, [ecx + edx]
mov dword [esp + 0xc], esi
jmp 0x4a1ae4
mov esi, dword [esp + 8]
push 0x7d
push esi
call dword [esp + 0x24]
mov dword [esp + 0x3c], eax
add esp, 8
movzx eax, word [esi]
mov edi, esi
test ax, ax
je 0x4a1e89
mov esi, eax
nop word [eax + eax]
mov ecx, 0x4f01ac
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4a1efb
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a1e60
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a1e50
mov esi, dword [esp + 8]
movzx eax, word [esi]
mov edi, esi
test ax, ax
je 0x4a1ed1
mov esi, eax
nop word [eax + eax]
mov ecx, 0x4f01ac
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x4a1f1e
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4a1eb0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4a1ea0
mov edi, dword [esp + 8]
mov ecx, edi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a1ee0
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
mov dword [esp + 8], edi
jmp 0x4a1335
cmp dword [esp + 0x34], edi
jae 0x4a1e85
mov edi, dword [esp + 8]
push 0x4e3594
push edi
call dword [esp + 0x44]
add esp, 8
lea edi, [edi + eax*2]
mov dword [esp + 8], edi
jmp 0x4a1335
mov edi, dword [esp + 8]
push 0x4f01ac
push edi
call dword [esp + 0x44]
add esp, 8
lea edi, [edi + eax*2]
add edi, 2
mov dword [esp + 8], edi
jmp 0x4a1335
lea eax, [esp + 0x638]
mov ecx, 0x4fcc10
push eax
push 0x4f0238
call fcn.0044df00
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x1f0]
mov dword [ecx + 0xb4], esi
push eax
push str.Variable_was_not_found_in_function.
mov ecx, 0x4fcc10
call fcn.0044df00
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x1f0]
jmp 0x4a1f8e
lea eax, [esp + 0x638]
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4fcc10
call fcn.0044df00
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 8]
push esi
push str.Invalid_structure_definition.
mov ecx, 0x4fcc10
call fcn.0044df00
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x30]
mov esi, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a1fde
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x4a1fde
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov ecx, dword [ebp + 0xc]
mov eax, esi
cdq
pop edi
pop esi
mov dword [ecx + 8], 1
mov dword [ecx + 4], edx
mov dword [ecx], eax
mov esp, ebp
pop ebp
ret