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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x8658
call fcn.004b8400
push esi
push edi
push 0x40
lea eax, [esp + 0x16c]
mov dword [esp + 0x18], 0
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x128]
push 0x40
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x1a8]
xorps xmm0, xmm0
movaps xmmword [esp + 0xc0], xmm0
push 0x40
push 0
push eax
call sub.VCRUNTIME140.dll_memset
movq xmm0, qword [str._UInt]
lea eax, [esp + 0x54]
mov dword [esp + 0x44], eax
add esp, 0xc
cdq
xor esi, esi
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x58]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xd8]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0x90]
mov dword [esp + 0xbc], eax
mov eax, dword [0x4dc24c]
mov dword [esp + 0x218], eax
mov ax, word [0x4dc250]
push 0x436
mov word [esp + 0x220], ax
lea eax, [esp + 0x222]
push esi
push eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x28], esi
mov dword [esp + 0x90], 1
mov dword [esp + 0x6c], 4
mov dword [esp + 0xec], 1
mov dword [esp + 0xb4], 1
mov dword [esp + 0xb0], edx
mov dword [esp + 0xa4], 1
movq qword [esp + 0x21c], xmm0
call sub.VCRUNTIME140.dll_memset
mov edi, dword [ebp + 0xc]
add esp, 0xc
mov eax, 0x20
mov byte [esp + 0x18], 0
mov word [esp + 0x210], ax
mov dword [edi + 8], esi
mov esi, dword [ebp + 0x10]
mov dword [edi], 0x4bac30
mov ecx, dword [esi]
call fcn.0046e480
test eax, eax
je 0x490a78
mov dword [edi + 8], 1
mov ecx, dword [esi]
call fcn.0046e480
cmp dword [ebp + 0x14], 1
mov edi, eax
jle 0x490a51
mov ecx, dword [esi + 4]
mov edx, 1
call fcn.0046e170
mov ecx, eax
mov esi, edx
mov eax, dword [edi + 0x18]
cdq
add eax, ecx
mov ecx, dword [ebp + 0xc]
adc edx, esi
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 + 0x50], xmm0
mov ecx, dword [esp + 0x50]
mov esi, dword [esp + 0x54]
cdq
add eax, ecx
mov ecx, dword [ebp + 0xc]
adc edx, esi
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 0x490aa9
mov ecx, dword [esi + 4]
call fcn.0046e060
test eax, eax
je 0x490aa9
mov ecx, dword [esi + 4]
xor edx, edx
call fcn.0046e170
mov dword [esp + 0x14], eax
cdq
mov dword [esp + 0xd8], eax
mov dword [esp + 0xdc], edx
cmp edi, 2
jle 0x490ada
mov ecx, dword [esi + 8]
call fcn.0046e060
test eax, eax
je 0x490ada
mov ecx, dword [esi + 8]
mov edx, 1
call fcn.0046e170
mov dword [esp + 0x38], eax
cdq
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], edx
mov ecx, dword [esi]
mov edx, dword [ecx + 8]
cmp edx, 5
ja case.0x490ae4.1
jmp dword [edx*4 + 0x491ba0]
mov ecx, dword [ecx]
push 0
push 1
call fcn.00401640
jmp 0x490b01
mov eax, dword [ecx]
jmp 0x490b01
mov eax, 0x4bac30
mov ecx, eax
mov dword [esp + 0xc], eax
call fcn.00404c80
mov ecx, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstol]
test al, al
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], ecx
je 0x490b35
push 0x10
push 0
push dword [esp + 0x14]
call ecx
add esp, 0xc
jmp 0x490b3e
push dword [esp + 0xc]
call eax
add esp, 4
lea edx, [esp + 0x1e8]
mov dword [esp + 0x24], eax
mov ecx, eax
call fcn.00413420
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x490b53
mov ecx, dword [esp + 0xc]
sub eax, edx
sar eax, 1
cmp word [ecx + eax*2], 0x3a
jne 0x490bb2
cmp dword [esp + 0x24], 0
jle 0x490bb2
lea ecx, [esp + 0x1e8]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x490b80
mov eax, dword [esp + 0xc]
sub ecx, edx
sar ecx, 1
lea eax, [eax + ecx*2]
add eax, 2
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
cdq
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jmp 0x490bc6
xorps xmm0, xmm0
mov dword [esp + 0x24], 0
movlpd qword [esp + 0x90], xmm0
cmp edi, 3
jle 0x490bf7
mov ecx, dword [esi + 0xc]
call fcn.0046e060
test eax, eax
je 0x490bf7
mov ecx, dword [esi + 0xc]
mov edx, 1
call fcn.0046e170
mov dword [esp + 0x24], eax
cdq
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
mov edi, dword [esp + 0xc]
cmp word [edi], 0
je 0x491b66
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 + 0x2c], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
mov dword [esp + 0x40], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
mov dword [esp + 0x78], eax
mov eax, dword [sym.imp.VCRUNTIME140.dll_wcschr]
mov dword [esp + 0x20], eax
mov eax, dword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov dword [esp + 0x4c], eax
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wcstoi64]
mov dword [esp + 0x70], eax
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi64]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x74], eax
nop
mov eax, dword [esp + 0x34]
push 2
mov dword [esp + 0x70], eax
mov eax, dword [esp + 0x2c]
push 0x4dc254
push edi
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], eax
call ecx
add esp, 0xc
test eax, eax
jne 0x490cf0
mov eax, dword [esp + 0xc]
movzx eax, word [eax]
mov dword [esp + 0x30], eax
test ax, ax
je 0x490cc5
movzx esi, ax
nop
mov ecx, 0x4db394
mov edx, 0xa
nop word [eax + eax]
cmp si, dx
je 0x490d4b
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x490ca0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x490c90
mov edi, dword [esp + 0xc]
mov ecx, edi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x490cd0
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
mov dword [esp + 0xc], edi
cmp word [edi], 0
je 0x491b66
mov esi, dword [esp + 0xc]
mov dword [esp + 0x44], edi
movzx eax, word [esi]
test ax, ax
je 0x490d39
mov esi, eax
mov ecx, str._n_r_t
mov edx, 0xa
nop dword [eax]
cmp si, dx
je 0x490da0
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x490d10
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x490d02
mov esi, dword [esp + 0xc]
xor edi, edi
cmp esi, edi
jne 0x490da6
mov edi, dword [esp + 0xc]
add edi, 2
jmp 0x491ad3
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x30]
mov dword [esp + 0xc], edi
movzx esi, ax
nop word [eax + eax]
mov ecx, 0x4db394
mov edx, 0xa
nop word [eax + eax]
cmp si, dx
je 0x490ce6
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x490d70
movzx eax, word [edi + 2]
add edi, 2
mov dword [esp + 0xc], edi
mov esi, eax
test ax, ax
jne 0x490d60
xor edi, edi
jmp 0x490ce2
mov esi, dword [esp + 0xc]
jmp 0x490d3b
push 0x7b
push esi
call dword [esp + 0x28]
add esp, 8
test eax, eax
je 0x490e69
movzx eax, word [esi]
mov edi, esi
test ax, ax
je 0x490f8d
mov esi, eax
nop dword [eax + eax]
mov ecx, 0x4dc234
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x490e06
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x490de0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x490dd0
jmp 0x490f89
mov esi, dword [esp + 0xc]
push 0x7b
push esi
call dword [esp + 0x28]
movzx ecx, word [esi]
add esp, 8
mov dword [esp + 0x30], eax
mov edi, esi
test cx, cx
je 0x490e69
mov esi, ecx
nop dword [eax]
nop dword [eax + eax]
mov ecx, 0x4dc234
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x490f7f
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x490e40
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x490e30
mov esi, dword [esp + 0xc]
movzx eax, word [esi]
cmp eax, 0x7d
jne 0x49109e
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
mov eax, edi
mov ecx, dword [esp + edx*4 + 0x168]
sub eax, ecx
mov esi, dword [esp + edx*4 + 0x128]
cmp eax, esi
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0xc]
jle 0x490ea6
mov dword [esp + 0x34], eax
mov dword [esp + edx*4 + 0x128], eax
cmp edx, 1
jle 0x491085
cmp byte [esp + edx + 0xbf], 0
je 0x491085
mov ecx, dword [esp + edx*4 + 0x1a8]
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x490ed6
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add edi, edx
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + edx*4 + 0x1a8]
cmp eax, dword [ecx]
jle 0x490eeb
mov dword [ecx], eax
mov ecx, dword [esp + 0x34]
cmp ecx, dword [esp + 0x6c]
mov byte [esp + 0x18], 0
cmovle ecx, dword [esp + 0x6c]
sub edx, 1
mov dword [esp + 0x34], ecx
mov dword [esp + 0x28], edx
lea eax, [ecx + edi]
cmovne eax, edi
add esi, 2
mov dword [esp + 0x14], eax
mov edi, esi
mov dword [esp + 0xc], esi
je 0x490f73
movzx eax, word [esi]
test ax, ax
je 0x490f69
mov esi, eax
nop word [eax + eax]
mov ecx, 0x4dc234
mov edx, 0x3b
nop word [eax + eax]
cmp si, dx
je 0x49108c
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x490f40
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x490f30
mov esi, dword [esp + 0xc]
xor edi, edi
cmp esi, edi
jne 0x491095
mov edi, dword [esp + 0x44]
add edi, 4
jmp 0x491ad3
cmp dword [esp + 0x30], edi
jae 0x490e65
mov esi, dword [esp + 0xc]
inc dword [esp + 0x28]
xor eax, eax
mov edi, dword [esp + 0x88]
test edi, edi
push str.struct
cmovne eax, dword [esp + 0x38]
push esi
mov dword [esp + 0x3c], eax
call dword [esp + 0x54]
add esp, 8
test eax, eax
je 0x490fd7
push str.struct
push esi
call dword [esp + 0x54]
push 0x7b
push dword [esp + 0x18]
mov esi, eax
call dword [esp + 0x30]
add esp, 0x10
cmp esi, eax
jae 0x490fd7
mov al, 1
jmp 0x490fd9
xor al, al
mov esi, dword [esp + 0xc]
mov byte [esp + edi + 0xc1], al
mov edi, dword [esp + 0x24]
test edi, edi
jle 0x491002
mov ecx, esi
call fcn.004905d0
movzx eax, al
cmp eax, edi
jle 0x491002
mov ecx, edi
mov dword [esp + 0x1c], edi
jmp 0x491010
mov ecx, esi
call fcn.004905d0
movzx ecx, al
mov dword [esp + 0x1c], ecx
mov edi, dword [esp + 0x14]
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x49102a
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add edi, edx
mov dword [esp + 0x14], edi
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
cmp eax, ecx
jle 0x491046
mov ecx, dword [esp + 0x24]
test ecx, ecx
jle 0x491040
cmp eax, ecx
jg 0x491042
mov ecx, eax
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x8c]
push 0x7b
push esi
mov esi, dword [esp + 0x28]
mov dword [esp + eax*4 + 0x1b4], ecx
mov dword [edx], 0
mov dword [esp + eax*4 + 0x174], edi
mov dword [esp + eax*4 + 0x134], 0
mov byte [esp + 0x20], 0
call esi
add esp, 8
lea edi, [eax + 2]
jmp 0x491ad3
mov edi, ecx
jmp 0x490eda
mov esi, dword [esp + 0xc]
jmp 0x490f6b
mov edi, dword [esp + 0xc]
jmp 0x491ad7
mov dword [esp + 0x30], 0
mov edi, esi
test ax, ax
je 0x4910e5
mov esi, eax
nop
mov ecx, 0x4dc278
mov edx, 0x7d
nop word [eax + eax]
cmp si, dx
je 0x491183
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x4910c0
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x4910b0
mov edi, dword [esp + 0xc]
mov ecx, edi
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4910f0
sub ecx, edx
sar ecx, 1
cmp ecx, 0x4000
ja 0x491b50
lea edx, [esp + 0x658]
mov ecx, edi
sub edx, edi
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x491120
cmp word [esp + 0x658], 0
je 0x4911d9
lea ecx, [esp + 0x658]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x491150
sub ecx, edx
sar ecx, 1
lea eax, [esp + ecx*2 + 0x656]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x491173
cmp ecx, 9
jne 0x4911c2
lea edx, [esp + 0x658]
cmp eax, edx
je 0x4911ca
sub eax, 2
jmp 0x491166
mov edi, dword [esp + 0xc]
push 0x4dc278
push edi
call dword [esp + 0x34]
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x491b50
push esi
lea eax, [esp + 0x65c]
push edi
push eax
call dword [esp + 0x4c]
add esp, 0xc
xor eax, eax
mov word [esp + esi*2 + 0x658], ax
jmp 0x491130
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x4911d9
cmp ecx, 0x20
je 0x4911d4
cmp ecx, 9
jne 0x4911d9
xor ecx, ecx
mov word [eax], cx
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x658]
push 0x5b
push eax
call esi
add esp, 8
test eax, eax
je 0x49128c
push 0x14
lea eax, [esp + 0x65c]
push 0x5b
push eax
call esi
add esp, 8
push eax
lea eax, [esp + 0x104]
push eax
call dword [esp + 0x4c]
add esp, 0xc
lea eax, [esp + 0xfc]
push 0x4dc2bc
push eax
call dword [esp + 0x34]
xor ecx, ecx
add esp, 8
mov word [esp + eax*2 + 0xfe], cx
lea ecx, [esp + 0xfe]
call fcn.00404c80
test al, al
lea eax, [esp + 0xfe]
je 0x491258
push 0x10
push 0
push eax
call dword [esp + 0x7c]
add esp, 0xc
jmp 0x491260
push eax
call dword [esp + 0x78]
add esp, 4
push 0
push 0
push 0x4001
push 1
push 1
push 0x4bac30
lea edx, [esp + 0x114]
mov dword [esp + 0x48], eax
lea ecx, [esp + 0x670]
call fcn.0049dd60
add esp, 0x18
lea eax, [esp + 0x658]
push 0x5b
push eax
call esi
add esp, 8
test eax, eax
jne 0x491b33
lea eax, [esp + 0x658]
push 0x2a
push eax
call esi
add esp, 8
test eax, eax
je 0x4913f0
lea eax, [esp + 0x658]
push 0x3a
push eax
call esi
add esp, 8
test eax, eax
jne 0x491aea
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x4912e6
cmp eax, 4
jge 0x4912e6
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x4912ef
mov esi, 4
mov dword [esp + 0x1c], esi
mov ecx, dword [esp + 0x14]
mov eax, ecx
cdq
idiv esi
test edx, edx
je 0x491309
mov eax, esi
sub eax, edx
cdq
idiv esi
add ecx, edx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x30]
mov eax, 1
mov edx, dword [esp + 0x14]
test ecx, ecx
cmovne eax, ecx
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x14], edx
cmp esi, dword [eax]
jle 0x49132c
mov dword [eax], esi
mov esi, dword [esp + 0x28]
test esi, esi
je 0x49135e
mov ecx, dword [esp + esi*4 + 0x168]
mov eax, edx
sub eax, ecx
cmp eax, dword [esp + esi*4 + 0x128]
jle 0x49134f
mov dword [esp + esi*4 + 0x128], eax
cmp byte [esp + esi + 0xc0], 0
cmove edx, ecx
mov dword [esp + 0x14], edx
mov esi, dword [esp + 0x20]
push 0x7d
push edi
call esi
add esp, 8
test eax, eax
je 0x4913ad
mov edx, 0x4dc234
mov ecx, edi
call fcn.004065e0
test eax, eax
je 0x491398
push 0x7d
push edi
call esi
add esp, 8
mov edx, 0x4dc234
mov ecx, edi
mov esi, eax
call fcn.004065e0
cmp esi, eax
jae 0x4913ad
push 0x4cf580
push edi
call dword [esp + 0x34]
add esp, 8
lea edi, [edi + eax*2]
jmp 0x491ad3
mov edx, 0x4dc234
mov ecx, edi
call fcn.004065e0
test eax, eax
je 0x4913d5
push 0x4dc234
push edi
call dword [esp + 0x34]
add esp, 8
lea edi, [edi + eax*2]
add edi, 2
jmp 0x491ad3
mov ecx, edi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4913e0
jmp 0x491acc
mov ax, word [esp + 0x658]
lea edi, [esp + 0x658]
test ax, ax
je 0x49149b
movzx esi, ax
nop dword [eax + eax]
mov ecx, 0x4d1604
mov edx, 0x20
nop word [eax + eax]
cmp si, dx
je 0x491443
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x491420
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x491410
jmp 0x49144b
test edi, edi
jne 0x4914fb
movzx esi, word [esp + 0x658]
lea edi, [esp + 0x658]
nop word [eax + eax]
mov ecx, 0x4dc278
mov edx, 0x7d
nop word [eax + eax]
cmp si, dx
je 0x491493
movzx eax, word [ecx + 2]
add ecx, 2
mov edx, eax
test ax, ax
jne 0x491470
movzx eax, word [edi + 2]
add edi, 2
mov esi, eax
test ax, ax
jne 0x491460
jmp 0x491497
test edi, edi
jne 0x4914fb
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0xc]
mov edx, 0x4dc278
mov ecx, edi
call fcn.004065e0
test eax, eax
jne 0x4914b5
cmp dword [esp + 0x14], eax
je 0x4914ff
lea eax, [esp + 0x658]
push 0x3a
push eax
call esi
add esp, 8
test eax, eax
je 0x491660
lea ecx, [eax + 2]
call fcn.00418450
mov byte [esp + 0x13], al
xor edx, edx
mov eax, dword [esp + 0x18]
movzx ecx, al
shr ecx, 3
cmp ecx, dword [esp + 0x3c]
movzx eax, al
cmovne edx, eax
add dl, byte [esp + 0x13]
mov byte [esp + 0x18], dl
jmp 0x49166a
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
lea eax, [esp + 0x658]
push 0x4dc300
push eax
call esi
add esp, 8
cmp eax, 0x218
ja 0x491b33
lea ecx, [esp + 0x658]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x491534
cmp eax, 9
jne 0x491539
add ecx, 2
jmp 0x491527
mov edx, 0x4d1604
call fcn.004065e0
test eax, eax
je 0x491551
cmp word [eax], 0x3a
je 0x4915e3
lea ecx, [esp + 0x210]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x491560
sub ecx, edx
sar ecx, 1
lea eax, [ecx - 2]
push eax
lea eax, [esp + 0x65c]
push eax
lea eax, [esp + 0x21a]
push eax
call dword [esp + 0x84]
mov ecx, dword [esp + 0x24]
add esp, 0xc
xor edx, edx
movzx ecx, cl
test eax, eax
lea eax, [esp + 0x658]
cmovne ecx, edx
push 0x4dc300
push eax
mov dword [esp + 0x20], ecx
call esi
push eax
lea eax, [esp + 0x664]
push eax
lea eax, [esp + 0x222]
push eax
call dword [esp + 0x54]
add esp, 0x14
lea eax, [esp + 0x658]
push 0x4dc300
push eax
call esi
add esp, 8
mov dword [esp + eax*2 + 0x212], 0x20
lea eax, [esp + 0x658]
push 0x3a
push eax
call dword [esp + 0x28]
mov esi, eax
add esp, 8
test esi, esi
je 0x491660
mov ecx, dword [esp + 0x18]
xor eax, eax
movzx edx, cl
shr edx, 3
cmp edx, dword [esp + 0x3c]
movzx ecx, cl
cmovne eax, ecx
add esi, 2
mov ecx, esi
mov dword [esp + 0x44], eax
call fcn.00404c80
test al, al
je 0x491643
push 0x10
push 0
push esi
call dword [esp + 0x88]
mov dl, al
add esp, 0xc
mov eax, dword [esp + 0x44]
add al, dl
mov byte [esp + 0x13], dl
mov byte [esp + 0x18], al
jmp 0x49166a
push esi
call dword [esp + 0x84]
mov dl, al
add esp, 4
mov eax, dword [esp + 0x44]
add al, dl
mov byte [esp + 0x13], dl
mov byte [esp + 0x18], al
jmp 0x49166a
mov byte [esp + 0x18], 0
mov byte [esp + 0x13], 0
mov ecx, str._bool
lea eax, [esp + 0x210]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x49169c
test dx, dx
je 0x491698
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x49169c
add eax, 4
add ecx, 4
test dx, dx
jne 0x491676
xor eax, eax
jmp 0x4916a1
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4916b0
mov edx, 1
mov dword [esp + 0x3c], edx
jmp 0x4916e6
xor esi, esi
mov ecx, dword [esi*4 + 0x4dc9d4]
lea edx, [esp + 0x210]
call fcn.0049d970
test eax, eax
jne 0x4916d1
inc esi
cmp esi, 8
jl 0x4916b2
jmp 0x4916d7
lea eax, [esi + 1]
movzx eax, ax
movsx edx, ax
mov dword [esp + 0x3c], edx
test edx, edx
je 0x4917eb
mov cl, byte [esp + 0x13]
test cl, cl
je 0x4916f4
cmp byte [esp + 0x18], cl
jne 0x49172b
cmp edx, 1
jle 0x49172b
mov eax, dword [esp + 0x24]
test eax, eax
jle 0x49170d
cmp edx, eax
jle 0x49170d
mov esi, eax
mov dword [esp + 0x1c], esi
jmp 0x491713
mov esi, edx
mov dword [esp + 0x1c], edx
mov eax, dword [esp + 0x14]
cdq
idiv esi
test edx, edx
je 0x49172f
mov eax, esi
sub eax, edx
cdq
idiv esi
add dword [esp + 0x14], edx
jmp 0x49172f
mov esi, dword [esp + 0x1c]
test cl, cl
je 0x491739
cmp byte [esp + 0x18], cl
jne 0x491750
mov ecx, dword [esp + 0x30]
mov eax, 1
test ecx, ecx
cmovne eax, ecx
imul eax, dword [esp + 0x3c]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
cmp esi, dword [eax]
jle 0x49175a
mov dword [eax], esi
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
test edx, edx
je 0x491794
mov ecx, dword [esp + edx*4 + 0x168]
mov eax, esi
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0x128]
jle 0x491781
mov dword [esp + edx*4 + 0x128], eax
cmp byte [esp + edx + 0xc0], 0
jne 0x491794
mov dword [esp + 0x14], ecx
mov byte [esp + 0x18], 0
mov esi, dword [esp + 0x20]
push 0x7d
push edi
call esi
add esp, 8
test eax, eax
je 0x491aa8
mov edx, 0x4dc234
mov ecx, edi
call fcn.004065e0
test eax, eax
je 0x4917d6
push 0x7d
push edi
call esi
add esp, 8
mov edx, 0x4dc234
mov ecx, edi
mov esi, eax
call fcn.004065e0
cmp esi, eax
jae 0x491aa8
push 0x4cf580
push edi
call dword [esp + 0x34]
add esp, 8
lea edi, [edi + eax*2]
jmp 0x491ad3
lea eax, [esp + 0x210]
mov dword [esp + 0x58], 0
push 0x28
push eax
call dword [esp + 0x28]
add esp, 8
test eax, eax
mov eax, dword [0x4e40f4]
je 0x491967
mov esi, dword [eax + 0xb4]
lea eax, [esp + 0x210]
push 0
push 0x4dc318
push eax
call dword [esp + 0x38]
add esp, 8
dec eax
mov ecx, 0x4e8b78
push eax
lea eax, [esp + 0x21a]
push eax
call fcn.00439c90
mov ecx, dword [0x4e40f4]
mov dword [ecx + 0xb4], eax
test eax, eax
je 0x491b07
xor ecx, ecx
nop word [eax + eax]
movzx eax, word [esp + ecx + 0x212]
lea ecx, [ecx + 2]
mov word [esp + ecx + 0x656], ax
test ax, ax
jne 0x491860
lea eax, [esp + 0x658]
push 0x4dc318
push eax
call dword [esp + 0x34]
lea ecx, [esp + 0x662]
add esp, 8
lea edx, [esp + 0x212]
lea ecx, [ecx + eax*2]
sub edx, ecx
nop
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4918a0
lea eax, [esp + 0x210]
push 0x29
push eax
call dword [esp + 0x28]
lea ecx, [esp + 0x218]
add esp, 8
lea edx, [ecx + 2]
mov dword [eax], 0x20
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4918d1
sub ecx, edx
push 0
sar ecx, 1
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4e8b78
push eax
lea eax, [esp + 0x222]
push eax
call fcn.0043b900
mov dword [esp + 0x58], eax
mov eax, dword [0x4e40f4]
mov dword [eax + 0xb4], esi
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x491957
lea ecx, [esp + 0x210]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x491920
sub ecx, edx
push 0
sar ecx, 1
push 1
push 0
lea eax, [ecx - 2]
mov ecx, 0x4e8b78
push eax
lea eax, [esp + 0x222]
push eax
call fcn.0043b900
mov dword [esp + 0x58], eax
test eax, eax
je 0x491b2a
mov ecx, dword [esp + 0x60]
cmp ecx, 5
ja case.0x491960.1
jmp dword [ecx*4 + 0x491bb8]
cmp dword [eax + 0xb4], 0
je 0x49190b
lea ecx, [esp + 0x210]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x491980
sub ecx, edx
push 0
sar ecx, 1
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4e8b78
push eax
lea eax, [esp + 0x222]
push eax
call fcn.0043b900
mov dword [esp + 0x58], eax
jmp 0x49190f
push 0
push 1
mov ecx, eax
call fcn.00401640
jmp case.0x491960.0
mov eax, 0x4bac30
mov ecx, eax
call fcn.004905d0
movzx esi, al
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], esi
test eax, eax
jle 0x4919e6
cmp esi, eax
jle 0x4919e6
mov esi, eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
cmp esi, ecx
jle 0x4919f4
mov dword [eax], esi
mov ecx, esi
mov al, byte [esp + 0x13]
test al, al
je 0x491a02
cmp byte [esp + 0x18], al
jne 0x491a22
mov esi, dword [esp + 0x14]
test esi, esi
je 0x491a26
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x491a26
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x14], esi
jmp 0x491a26
mov esi, dword [esp + 0x14]
mov ecx, dword [esp + 0xb4]
mov eax, esi
cdq
push 4
mov dword [ecx], eax
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0xf0]
mov dword [ecx + 4], edx
push eax
lea eax, [esp + 0x90]
push eax
call fcn.004908a0
add esp, 0x10
cmp dword [esp + 0xf0], 1
jne 0x491b2a
mov al, byte [esp + 0x13]
test al, al
je 0x491a77
cmp byte [esp + 0x18], al
jne 0x49175e
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0xe8]
test eax, eax
je 0x491a9a
mov ecx, edx
dec eax
sub ecx, esi
imul ecx, eax
lea esi, [ecx + edx]
mov dword [esp + 0x14], esi
jmp 0x49175e
xor ecx, ecx
lea esi, [ecx + edx]
mov dword [esp + 0x14], esi
jmp 0x49175e
mov edx, 0x4dc234
mov ecx, edi
call fcn.004065e0
test eax, eax
jne 0x4913bd
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x491ac1
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
mov dword [esp + 0xc], edi
cmp word [edi], 0
je 0x491b66
mov ecx, dword [esp + 0x50]
jmp 0x490c50
lea eax, [esp + 0x658]
mov ecx, 0x4e8b78
push eax
push 0x4dc2c0
call fcn.00448ad0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x210]
mov dword [ecx + 0xb4], esi
push eax
push str.Variable_was_not_found_in_function.
mov ecx, 0x4e8b78
call fcn.00448ad0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x210]
jmp 0x491b3a
lea eax, [esp + 0x658]
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4e8b78
call fcn.00448ad0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push edi
push str.Invalid_structure_definition.
mov ecx, 0x4e8b78
call fcn.00448ad0
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x14]
mov ecx, dword [ecx]
test ecx, ecx
je 0x491b86
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x491b86
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