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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x4408
call fcn.004c1c60
push esi
push edi
push 0x40
lea eax, [esp + 0x164]
mov dword [esp + 0x1c], 0
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x120]
push 0x40
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x1a0]
xorps xmm0, xmm0
movaps xmmword [esp + 0xf0], xmm0
push 0x40
push 0
push eax
call sub.VCRUNTIME140.dll_memset
lea eax, [esp + 0x64]
mov dword [esp + 0x4c], 0
mov dword [esp + 0x40], eax
add esp, 0xc
cdq
xor esi, esi
mov dword [esp + 0xa0], eax
lea eax, [esp + 0x68]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x100]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xa0]
mov dword [esp + 0xbc], eax
lea eax, [esp + 0x90]
mov dword [esp + 0xc0], eax
mov eax, dword [str._UInt]
mov dword [esp + 0x1e0], eax
mov ax, word [0x4cf908]
mov word [esp + 0x1e4], ax
mov al, byte [0x4cf90a]
push 0x21b
mov byte [esp + 0x1ea], al
lea eax, [esp + 0x1eb]
push esi
push eax
mov dword [esp + 0x38], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x30], esi
mov dword [esp + 0x98], 1
mov dword [esp + 0x7c], 4
mov dword [esp + 0x114], 1
mov dword [esp + 0xb4], 1
mov dword [esp + 0xb0], edx
mov dword [esp + 0xa4], 1
call sub.VCRUNTIME140.dll_memset
mov edi, dword [ebp + 0xc]
add esp, 0xc
mov byte [esp + 0x1c], 0
mov byte [esp + 0x1e0], 0x20
mov dword [edi + 8], esi
mov esi, dword [ebp + 0x10]
mov dword [edi], 0x4c3c29
mov ecx, dword [esi]
call fcn.004772b0
test eax, eax
je 0x49e30e
mov dword [edi + 8], 1
mov ecx, dword [esi]
call fcn.004772b0
cmp dword [ebp + 0x14], 1
mov edi, eax
jle 0x49e2e7
mov ecx, dword [esi + 4]
mov edx, 1
call fcn.00476ef0
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 + 0x60], xmm0
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x64]
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 0x49e33f
mov ecx, dword [esi + 4]
call fcn.00476dc0
test eax, eax
je 0x49e33f
mov ecx, dword [esi + 4]
xor edx, edx
call fcn.00476ef0
mov dword [esp + 0x18], eax
cdq
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], edx
cmp edi, 2
jle 0x49e370
mov ecx, dword [esi + 8]
call fcn.00476dc0
test eax, eax
je 0x49e370
mov ecx, dword [esi + 8]
mov edx, 1
call fcn.00476ef0
mov dword [esp + 0x34], 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.0x49e37a.1
jmp dword [edx*4 + 0x49f51c]
mov ecx, dword [ecx]
push 0
push 1
call fcn.00401640
jmp 0x49e397
mov eax, dword [ecx]
jmp 0x49e397
mov eax, 0x4c3c29
mov dword [esp + 0x10], eax
mov ecx, eax
nop dword [eax]
mov al, byte [ecx]
cmp al, 0x20
je 0x49e3aa
cmp al, 9
jne 0x49e3ad
inc ecx
jmp 0x49e3a0
mov edx, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
mov dword [esp + 0x50], edx
mov edx, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_strtol]
mov dword [esp + 0x4c], edx
mov edx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isxdigit]
mov dword [esp + 0x48], edx
test al, al
je 0x49e413
cmp al, 0x2d
je 0x49e3d7
cmp al, 0x2b
jne 0x49e3de
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x49e413
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x49e3ed
cmp al, 0x58
jne 0x49e413
movsx eax, byte [ecx + 2]
push eax
call edx
add esp, 4
test eax, eax
je 0x49e413
mov ecx, dword [esp + 0x10]
push 0x10
push 0
push ecx
call dword [esp + 0x58]
mov ecx, eax
add esp, 0xc
mov dword [esp + 0x28], ecx
jmp 0x49e425
mov ecx, dword [esp + 0x10]
push ecx
call dword [esp + 0x54]
add esp, 4
mov dword [esp + 0x28], eax
mov ecx, eax
mov eax, dword [0x4d70f4]
cmp byte [eax + 0xd5], 0x44
jne 0x49e44b
push 0xa
lea eax, [esp + 0xc8]
push eax
push ecx
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itoa]
add esp, 0xc
mov ecx, eax
jmp 0x49e4b2
movzx eax, byte [esp + 0xc4]
test ecx, ecx
mov edx, 0x2d
cmovs eax, edx
lea edx, [esp + 0xc5]
mov byte [esp + 0xc4], al
lea eax, [esp + 0xc4]
cmovs eax, edx
lea edi, [eax + 1]
push 0x10
mov byte [eax], 0x30
mov eax, ecx
cdq
mov byte [edi], 0x78
xor eax, edx
inc edi
sub eax, edx
push edi
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__itoa]
mov eax, dword [0x4d70f4]
add esp, 0xc
cmp byte [eax + 0xd5], 0x48
jne 0x49e4a8
push edi
call dword [sym.imp.USER32.dll_CharUpperA]
mov edi, dword [ebp + 0x14]
lea ecx, [esp + 0xc4]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x49e4b5
mov eax, dword [esp + 0x10]
sub ecx, edx
cmp byte [ecx + eax], 0x3a
jne 0x49e509
cmp dword [esp + 0x28], 0
jle 0x49e509
lea ecx, [esp + 0xc4]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x49e4e0
mov eax, dword [esp + 0x10]
sub ecx, edx
inc eax
add eax, ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x28]
cdq
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
jmp 0x49e51d
xorps xmm0, xmm0
mov dword [esp + 0x28], 0
movlpd qword [esp + 0x90], xmm0
cmp edi, 3
jle 0x49e54e
mov ecx, dword [esi + 0xc]
call fcn.00476dc0
test eax, eax
je 0x49e54e
mov ecx, dword [esi + 0xc]
mov edx, 1
call fcn.00476ef0
mov dword [esp + 0x28], eax
cdq
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
mov edi, dword [esp + 0x10]
cmp byte [edi], 0
je 0x49f4e4
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 + 0x20], eax
mov eax, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsstr]
mov dword [esp + 0x5c], eax
mov eax, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbscspn]
mov dword [esp + 0x30], eax
mov eax, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbcpy]
mov dword [esp + 0x44], eax
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__strtoi64]
mov dword [esp + 0x7c], eax
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__atoi64]
mov dword [esp + 0x80], eax
mov eax, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbsnbicmp]
mov dword [esp + 0x84], eax
mov eax, dword [sym.imp.api_ms_win_crt_multibyte_l1_1_0.dll__mbscmp]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x88], eax
nop word [eax + eax]
mov eax, dword [esp + 0x2c]
push 2
push 0x4cf90c
push edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x84], eax
call ecx
add esp, 0xc
test eax, eax
jne 0x49e62c
mov ah, byte [edi]
mov esi, edi
test ah, ah
je 0x49e60f
mov dl, ah
nop word [eax + eax]
mov ecx, 0x4cf0a4
mov al, 0xa
cmp dl, al
je 0x49e6a9
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49e5f7
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49e5f0
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x49e614
sub ecx, edx
add edi, ecx
mov dword [esp + 0x10], edi
cmp byte [edi], 0
je 0x49f4e4
mov edx, dword [esp + 0x10]
mov esi, edx
mov dword [esp + 0x38], edi
mov dl, byte [edx]
test dl, dl
je 0x49e65f
nop dword [eax]
mov ecx, str._n_r_t
mov al, 0xa
cmp dl, al
je 0x49e6da
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49e647
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49e640
mov ecx, dword [esp + 0x10]
push 0x7b
push ecx
call dword [esp + 0x28]
add esp, 8
test eax, eax
je 0x49e728
mov edi, dword [esp + 0x10]
mov esi, edi
mov dl, byte [edi]
test dl, dl
je 0x49e7a7
mov ecx, 0x4cf8fc
mov al, 0x3b
nop dword [eax]
cmp dl, al
je 0x49e6ea
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49e690
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49e685
jmp 0x49e7a7
mov dword [esp + 0x10], edi
nop dword [eax]
mov ecx, 0x4cf0a4
mov al, 0xa
cmp ah, al
je 0x49e623
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49e6b7
mov ah, byte [edi + 1]
inc edi
mov dword [esp + 0x10], edi
test ah, ah
jne 0x49e6b0
xor edi, edi
jmp 0x49e61f
mov ecx, dword [esp + 0x10]
cmp ecx, esi
jne 0x49e663
mov edi, ecx
inc edi
jmp 0x49f43c
push 0x7b
push edi
call dword [esp + 0x28]
mov edx, dword [esp + 0x18]
add esp, 8
mov esi, edx
mov edi, eax
mov dl, byte [edx]
test dl, dl
je 0x49e728
mov ecx, 0x4cf8fc
mov al, 0x3b
nop dword [eax]
cmp dl, al
je 0x49e7a3
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49e710
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49e702
mov eax, dword [esp + 0x10]
mov dl, byte [eax]
cmp dl, 0x7d
jne 0x49e92e
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov eax, edx
mov ecx, dword [esp + esi*4 + 0x160]
sub eax, ecx
mov esi, dword [esp + esi*4 + 0x120]
cmp eax, esi
jle 0x49e762
mov edi, dword [esp + 0x2c]
mov esi, eax
mov dword [esp + edi*4 + 0x120], eax
mov eax, dword [esp + 0x2c]
cmp eax, 1
jle 0x49e89f
cmp byte [esp + eax + 0xef], 0
je 0x49e89f
mov ecx, dword [esp + eax*4 + 0x1a0]
mov eax, edx
cdq
idiv ecx
test edx, edx
je 0x49e89b
mov eax, ecx
sub eax, edx
cdq
idiv ecx
mov ecx, dword [esp + 0x18]
add ecx, edx
jmp 0x49e89f
cmp edi, esi
jae 0x49e728
inc dword [esp + 0x2c]
xor eax, eax
mov edi, dword [esp + 0x78]
test edi, edi
mov esi, dword [esp + 0x10]
cmovne eax, dword [esp + 0x40]
push str.struct
push esi
mov dword [esp + 0x48], eax
call dword [esp + 0x64]
add esp, 8
test eax, eax
je 0x49e7f2
push str.struct
push esi
call dword [esp + 0x64]
push 0x7b
push dword [esp + 0x1c]
mov esi, eax
call dword [esp + 0x30]
add esp, 0x10
cmp esi, eax
jae 0x49e7f2
mov al, 1
jmp 0x49e7f4
xor al, al
mov esi, dword [esp + 0x10]
mov byte [esp + edi + 0xf1], al
mov edi, dword [esp + 0x28]
test edi, edi
jle 0x49e81d
mov ecx, esi
call fcn.0049ded0
movzx eax, al
cmp eax, edi
jle 0x49e81d
mov ecx, edi
mov dword [esp + 0x24], edi
jmp 0x49e82b
mov ecx, esi
call fcn.0049ded0
movzx ecx, al
mov dword [esp + 0x24], ecx
mov edi, dword [esp + 0x18]
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x49e845
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add edi, edx
mov dword [esp + 0x18], edi
mov edx, dword [esp + 0x34]
mov eax, dword [edx]
cmp eax, ecx
jle 0x49e861
mov ecx, dword [esp + 0x28]
test ecx, ecx
jle 0x49e85b
cmp eax, ecx
jg 0x49e85d
mov ecx, eax
mov dword [esp + 0x24], ecx
mov eax, dword [esp + 0x54]
push 0x7b
push esi
mov dword [edx], 0
mov dword [esp + eax*4 + 0x1ac], ecx
mov dword [esp + eax*4 + 0x16c], edi
mov dword [esp + eax*4 + 0x12c], 0
mov byte [esp + 0x24], 0
call dword [esp + 0x28]
add esp, 8
lea edi, [eax + 1]
jmp 0x49f43c
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x34]
mov eax, dword [esp + edx*4 + 0x1a0]
cmp eax, dword [edi]
mov edi, dword [esp + 0x38]
jle 0x49e8c0
mov edi, dword [esp + 0x34]
mov dword [edi], eax
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
cmp esi, eax
mov byte [esp + 0x1c], 0
cmovg eax, esi
sub edx, 1
mov dword [esp + 0x40], eax
mov dword [esp + 0x2c], edx
lea eax, [eax + ecx]
cmovne eax, ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
add eax, 1
mov dword [esp + 0x10], eax
mov esi, eax
je 0x49e91b
mov dl, byte [eax]
test dl, dl
je 0x49e91b
nop dword [eax + eax]
mov ecx, 0x4cf8fc
mov al, 0x3b
cmp dl, al
je 0x49e91d
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49e907
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49e900
xor esi, esi
xor eax, eax
cmp dword [esp + 0x10], esi
sete al
inc eax
add edi, eax
jmp 0x49f43c
xor edi, edi
mov esi, eax
test dl, dl
je 0x49e958
mov ecx, 0x4cf920
mov al, 0x7d
nop dword [eax]
cmp dl, al
je 0x49e9d0
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49e940
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49e936
mov esi, dword [esp + 0x10]
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x49e961
sub ecx, edx
cmp ecx, 0x4000
ja 0x49f4ce
lea edx, [esp + 0x408]
mov ecx, esi
sub edx, esi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x49e981
cmp byte [esp + 0x408], 0
je 0x49ea1f
lea ecx, [esp + 0x408]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x49e9a6
sub ecx, edx
lea eax, [esp + ecx + 0x407]
mov cl, byte [eax]
cmp cl, 0x20
je 0x49e9c2
cmp cl, 9
jne 0x49ea0c
lea edx, [esp + 0x408]
cmp eax, edx
je 0x49ea12
dec eax
jmp 0x49e9b6
push 0x4cf920
push dword [esp + 0x14]
call dword [esp + 0x38]
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x49f4ca
push esi
push dword [esp + 0x14]
lea eax, [esp + 0x410]
push eax
call dword [esp + 0x50]
add esp, 0xc
mov byte [esp + esi + 0x408], 0
jmp 0x49e98e
mov byte [eax + 1], 0
jmp 0x49ea1f
cmp cl, 0x20
je 0x49ea1c
cmp cl, 9
jne 0x49ea1f
mov byte [eax], 0
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x408]
push 0x5b
push eax
call esi
add esp, 8
test eax, eax
je 0x49eb13
lea eax, [esp + 0x408]
push 0x5b
push eax
call esi
push 0x14
push eax
lea eax, [esp + 0xe8]
push eax
call dword [esp + 0x58]
add esp, 0x14
lea eax, [esp + 0xd8]
push 0x4cf944
push eax
call dword [esp + 0x38]
add esp, 8
lea ecx, [esp + 0xd9]
mov byte [esp + eax + 0xd9], 0
nop dword [eax + eax]
mov al, byte [ecx]
cmp al, 0x20
je 0x49ea8a
cmp al, 9
jne 0x49ea8d
inc ecx
jmp 0x49ea80
test al, al
je 0x49ead7
cmp al, 0x2d
je 0x49ea99
cmp al, 0x2b
jne 0x49eaa0
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x49ead7
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x49eaaf
cmp al, 0x58
jne 0x49ead7
movsx eax, byte [ecx + 2]
push eax
call dword [esp + 0x4c]
add esp, 4
test eax, eax
je 0x49ead7
push 0x10
lea eax, [esp + 0xdd]
push 0
push eax
call dword [esp + 0x88]
add esp, 0xc
jmp 0x49eae9
lea eax, [esp + 0xd9]
push eax
call dword [esp + 0x84]
add esp, 4
push 0
push 0
push 0x4001
push 1
push 1
push 0x4c3c29
lea edx, [esp + 0xf0]
mov edi, eax
lea ecx, [esp + 0x420]
call fcn.004ac590
add esp, 0x18
lea eax, [esp + 0x408]
push 0x5b
push eax
call esi
add esp, 8
test eax, eax
jne 0x49f4ad
lea eax, [esp + 0x408]
push 0x2a
push eax
call esi
add esp, 8
test eax, eax
je 0x49eccd
lea eax, [esp + 0x408]
push 0x3a
push eax
call esi
add esp, 8
test eax, eax
jne 0x49f464
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x49eb6d
cmp eax, 4
jge 0x49eb6d
mov ecx, eax
mov dword [esp + 0x24], eax
jmp 0x49eb76
mov ecx, 4
mov dword [esp + 0x24], ecx
mov esi, dword [esp + 0x18]
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x49eb8c
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
test edi, edi
mov eax, 1
cmovne eax, edi
lea esi, [esi + eax*4]
mov eax, dword [esp + 0x34]
mov dword [esp + 0x18], esi
cmp ecx, dword [eax]
jle 0x49eba7
mov dword [eax], ecx
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x49ebd9
mov ecx, dword [esp + edx*4 + 0x160]
mov eax, esi
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0x120]
jle 0x49ebca
mov dword [esp + edx*4 + 0x120], eax
cmp byte [esp + edx + 0xf0], 0
cmove esi, ecx
mov dword [esp + 0x18], esi
mov edi, dword [esp + 0x10]
push 0x7d
push edi
call dword [esp + 0x28]
add esp, 8
test eax, eax
je 0x49ec5f
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x49eca4
mov ecx, 0x4cf8fc
mov al, 0x3b
nop
cmp dl, al
je 0x49ec28
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49ec00
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49ebf7
push 0x4c87c8
push edi
call dword [esp + 0x38]
add esp, 8
add edi, eax
jmp 0x49f43c
push 0x7d
push edi
call dword [esp + 0x28]
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x10]
mov esi, eax
mov dl, byte [eax]
test dl, dl
je 0x49ec5b
mov ecx, 0x4cf8fc
mov al, 0x3b
cmp dl, al
je 0x49ec9c
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49ec47
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49ec40
mov edi, dword [esp + 0x10]
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x49ec84
mov ecx, 0x4cf8fc
mov al, 0x3b
nop
cmp dl, al
je 0x49ecb8
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49ec70
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49ec67
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x49ec90
jmp 0x49f438
cmp edi, esi
jae 0x49ec5b
mov edi, dword [esp + 0x10]
push 0x4c87c8
push edi
call dword [esp + 0x38]
add esp, 8
add edi, eax
jmp 0x49f43c
push 0x4cf8fc
push edi
call dword [esp + 0x38]
inc edi
add esp, 8
add edi, eax
jmp 0x49f43c
mov ah, byte [esp + 0x408]
lea esi, [esp + 0x408]
test ah, ah
je 0x49ed35
mov dl, ah
mov ecx, 0x4c98e4
mov al, 0x20
cmp dl, al
je 0x49ecfe
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49ece8
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49ece1
jmp 0x49ed06
test esi, esi
jne 0x49ee05
lea edx, [esp + 0x408]
nop dword [eax]
mov ecx, 0x4cf920
mov al, 0x7d
cmp ah, al
je 0x49ed2d
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49ed17
mov ah, byte [edx + 1]
inc edx
test ah, ah
jne 0x49ed10
jmp 0x49ed35
test edx, edx
jne 0x49ee05
mov eax, dword [esp + 0x10]
mov esi, eax
mov dl, byte [eax]
test dl, dl
je 0x49ed5c
mov ecx, 0x4cf920
mov al, 0x7d
cmp dl, al
je 0x49ed67
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49ed48
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49ed41
cmp dword [esp + 0x18], 0
je 0x49ee05
lea eax, [esp + 0x408]
push 0x3a
push eax
call dword [esp + 0x28]
add esp, 8
test eax, eax
je 0x49efab
mov edx, dword [esp + 0x1c]
xor esi, esi
movzx ecx, dl
shr ecx, 3
cmp ecx, dword [esp + 0x3c]
movzx edx, dl
cmove edx, esi
lea esi, [eax + 1]
mov dword [esp + 0x1c], edx
mov ecx, esi
nop
mov al, byte [ecx]
cmp al, 0x20
je 0x49edaa
cmp al, 9
jne 0x49edad
inc ecx
jmp 0x49eda0
test al, al
je 0x49edf4
cmp al, 0x2d
je 0x49edb9
cmp al, 0x2b
jne 0x49edc0
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x49edf4
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x49edcf
cmp al, 0x58
jne 0x49edf4
movsx eax, byte [ecx + 2]
push eax
call dword [esp + 0x4c]
add esp, 4
test eax, eax
je 0x49edf4
push 0x10
push 0
push esi
call dword [esp + 0x58]
add esp, 0xc
add byte [esp + 0x1c], al
jmp 0x49efb2
push esi
call dword [esp + 0x54]
add esp, 4
add byte [esp + 0x1c], al
jmp 0x49efb2
lea eax, [esp + 0x408]
push 0x4cf968
push eax
call dword [esp + 0x38]
add esp, 8
cmp eax, 0x218
ja 0x49f4ad
lea esi, [esp + 0x408]
nop dword [eax + eax]
mov dl, byte [esi]
cmp dl, 0x20
je 0x49ee3c
cmp dl, 9
jne 0x49ee3f
inc esi
jmp 0x49ee30
test dl, dl
je 0x49ee6f
mov ecx, 0x4c98e4
mov al, 0x20
nop word [eax + eax]
cmp dl, al
je 0x49ee66
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49ee50
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49ee43
jmp 0x49ee6f
cmp byte [esi], 0x3a
je 0x49ef03
lea ecx, [esp + 0x1e0]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x49ee80
sub ecx, edx
lea eax, [ecx - 2]
push eax
lea eax, [esp + 0x40c]
push eax
lea eax, [esp + 0x1e9]
push eax
call dword [esp + 0x90]
mov ecx, dword [esp + 0x28]
add esp, 0xc
mov esi, dword [esp + 0x30]
xor edx, edx
test eax, eax
movzx ecx, cl
lea eax, [esp + 0x408]
cmovne ecx, edx
push 0x4cf968
push eax
mov byte [esp + 0x24], cl
call esi
push eax
lea eax, [esp + 0x414]
push eax
lea eax, [esp + 0x1f1]
push eax
call dword [esp + 0x58]
add esp, 0x14
lea eax, [esp + 0x408]
push 0x4cf968
push eax
call esi
mov ecx, 0x20
add esp, 8
mov word [esp + eax + 0x1e1], cx
lea eax, [esp + 0x408]
push 0x3a
push eax
call dword [esp + 0x28]
add esp, 8
test eax, eax
je 0x49efab
mov ecx, dword [esp + 0x1c]
xor esi, esi
movzx edx, cl
shr edx, 3
cmp edx, dword [esp + 0x3c]
movzx ecx, cl
cmovne esi, ecx
mov dword [esp + 0x54], esi
lea esi, [eax + 1]
mov ecx, esi
nop dword [eax + eax]
mov al, byte [ecx]
cmp al, 0x20
je 0x49ef4a
cmp al, 9
jne 0x49ef4d
inc ecx
jmp 0x49ef40
test al, al
je 0x49ef97
cmp al, 0x2d
je 0x49ef59
cmp al, 0x2b
jne 0x49ef60
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x49ef97
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x49ef6f
cmp al, 0x58
jne 0x49ef97
movsx eax, byte [ecx + 2]
push eax
call dword [esp + 0x4c]
add esp, 4
test eax, eax
je 0x49ef97
push 0x10
push 0
push esi
call dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
add esp, 0xc
add cl, al
mov byte [esp + 0x1c], cl
jmp 0x49efb2
push esi
call dword [esp + 0x54]
mov ecx, dword [esp + 0x58]
add esp, 4
add cl, al
mov byte [esp + 0x1c], cl
jmp 0x49efb2
mov byte [esp + 0x1c], 0
xor al, al
mov byte [esp + 0x17], al
lea eax, [esp + 0x1e0]
push str._bool
push eax
call dword [esp + 0x90]
add esp, 8
test eax, eax
jne 0x49efdc
mov edx, 1
mov dword [esp + 0x3c], edx
jmp 0x49f014
xor esi, esi
nop
mov ecx, dword [esi*4 + 0x4d072c]
lea edx, [esp + 0x1e0]
call fcn.004ac1a0
test eax, eax
jne 0x49efff
inc esi
cmp esi, 8
jl 0x49efe0
jmp 0x49f005
lea eax, [esi + 1]
movzx eax, ax
movsx edx, ax
mov dword [esp + 0x3c], edx
test edx, edx
je 0x49f11c
mov cl, byte [esp + 0x17]
test cl, cl
je 0x49f024
mov eax, dword [esp + 0x1c]
cmp al, cl
jne 0x49f07a
cmp edx, 1
jle 0x49f05d
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x49f03d
cmp edx, eax
jle 0x49f03d
mov esi, eax
mov dword [esp + 0x24], esi
jmp 0x49f043
mov esi, edx
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x18]
cdq
idiv esi
test edx, edx
je 0x49f059
mov eax, esi
sub eax, edx
cdq
idiv esi
add dword [esp + 0x18], edx
mov edx, dword [esp + 0x3c]
test cl, cl
je 0x49f069
mov eax, dword [esp + 0x1c]
cmp al, cl
jne 0x49f07a
test edi, edi
mov eax, 1
cmovne eax, edi
imul eax, edx
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x24]
cmp esi, dword [eax]
jle 0x49f088
mov dword [eax], esi
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x2c]
test edx, edx
je 0x49f0c2
mov ecx, dword [esp + edx*4 + 0x160]
mov eax, esi
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0x120]
jle 0x49f0af
mov dword [esp + edx*4 + 0x120], eax
cmp byte [esp + edx + 0xf0], 0
jne 0x49f0c2
mov dword [esp + 0x18], ecx
mov byte [esp + 0x1c], 0
mov edi, dword [esp + 0x10]
push 0x7d
push edi
call dword [esp + 0x28]
add esp, 8
test eax, eax
je 0x49f409
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x49eca4
mov ecx, 0x4cf8fc
mov al, 0x3b
nop dword [eax + eax]
cmp dl, al
je 0x49f3c0
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49f0f0
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49f0e4
push 0x4c87c8
push edi
call dword [esp + 0x38]
add esp, 8
add edi, eax
jmp 0x49f43c
lea eax, [esp + 0x1e0]
mov dword [esp + 0x68], 0
push 0x28
push eax
call dword [esp + 0x28]
add esp, 8
test eax, eax
mov eax, dword [0x4d70f4]
je 0x49f287
mov esi, dword [eax + 0x94]
lea eax, [esp + 0x1e0]
push 0x4cf974
push eax
call dword [esp + 0x38]
add esp, 8
dec eax
mov ecx, 0x4dba98
push 0
push eax
lea eax, [esp + 0x1e9]
push eax
call fcn.0043cf60
mov ecx, dword [0x4d70f4]
mov dword [ecx + 0x94], eax
test eax, eax
je 0x49f481
xor ecx, ecx
nop dword [eax + eax]
mov al, byte [esp + ecx + 0x1e1]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x407], al
test al, al
jne 0x49f190
lea eax, [esp + 0x408]
push 0x4cf974
push eax
call dword [esp + 0x38]
lea ecx, [esp + 0x411]
add esp, 8
add ecx, eax
lea edx, [esp + 0x1e1]
sub edx, ecx
nop dword [eax + eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x49f1d0
lea eax, [esp + 0x1e0]
push 0x29
push eax
call dword [esp + 0x28]
mov ecx, 0x20
add esp, 8
mov word [eax], cx
lea ecx, [esp + 0x1e0]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x49f200
push 0
sub ecx, edx
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4dba98
push eax
lea eax, [esp + 0x1f1]
push eax
call fcn.0043ece0
mov dword [esp + 0x68], eax
mov eax, dword [0x4d70f4]
mov dword [eax + 0x94], esi
mov eax, dword [esp + 0x68]
test eax, eax
jne 0x49f277
lea ecx, [esp + 0x1e0]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x49f246
push 0
sub ecx, edx
push 1
push 0
lea eax, [ecx - 2]
mov ecx, 0x4dba98
push eax
lea eax, [esp + 0x1f1]
push eax
call fcn.0043ece0
mov dword [esp + 0x68], eax
test eax, eax
je 0x49f4a4
mov ecx, dword [esp + 0x70]
cmp ecx, 5
ja case.0x49f280.1
jmp dword [ecx*4 + 0x49f534]
cmp dword [eax + 0x94], 0
je 0x49f234
lea ecx, [esp + 0x1e0]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x49f2a0
push 0
sub ecx, edx
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4dba98
push eax
lea eax, [esp + 0x1f1]
push eax
call fcn.0043ece0
mov dword [esp + 0x68], eax
jmp 0x49f238
push 0
push 1
mov ecx, eax
call fcn.00401640
jmp case.0x49f280.0
mov eax, 0x4c3c29
mov ecx, eax
call fcn.0049ded0
movzx esi, al
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], esi
test eax, eax
jle 0x49f300
cmp esi, eax
jle 0x49f300
mov esi, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
cmp esi, ecx
jle 0x49f30e
mov dword [eax], esi
mov ecx, esi
mov al, byte [esp + 0x17]
test al, al
je 0x49f31c
cmp byte [esp + 0x1c], al
jne 0x49f33c
mov esi, dword [esp + 0x18]
test esi, esi
je 0x49f340
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x49f340
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x18], esi
jmp 0x49f340
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0xb8]
mov eax, esi
cdq
push 4
mov dword [ecx], eax
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0x118]
mov dword [ecx + 4], edx
push eax
lea eax, [esp + 0x98]
push eax
call fcn.0049e140
add esp, 0x10
cmp dword [esp + 0x118], 1
jne 0x49f4a4
mov al, byte [esp + 0x17]
test al, al
je 0x49f391
cmp byte [esp + 0x1c], al
jne 0x49f08c
mov edx, dword [esp + 0x110]
test edi, edi
je 0x49f3b2
mov ecx, edx
lea eax, [edi - 1]
sub ecx, esi
imul ecx, eax
lea esi, [ecx + edx]
mov dword [esp + 0x18], esi
jmp 0x49f08c
xor ecx, ecx
lea esi, [ecx + edx]
mov dword [esp + 0x18], esi
jmp 0x49f08c
push 0x7d
push edi
call dword [esp + 0x28]
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x10]
mov esi, eax
mov dl, byte [eax]
test dl, dl
je 0x49f405
nop dword [eax + eax]
mov ecx, 0x4cf8fc
mov al, 0x3b
cmp dl, al
je 0x49f3fd
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49f3e7
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49f3e0
jmp 0x49f405
cmp edi, esi
jb 0x49eca0
mov edi, dword [esp + 0x10]
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x49f42c
mov ecx, 0x4cf8fc
mov al, 0x3b
cmp dl, al
je 0x49f452
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x49f418
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x49f411
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x49f431
sub ecx, edx
add edi, ecx
cmp byte [edi], 0
mov dword [esp + 0x10], edi
je 0x49f4e4
mov ecx, dword [esp + 0x60]
jmp 0x49e5c0
push 0x4cf8fc
push edi
call dword [esp + 0x38]
inc edi
add esp, 8
add edi, eax
jmp 0x49f43c
lea eax, [esp + 0x408]
mov ecx, 0x4dba98
push eax
push str.Bit_field_must_not_be_a_pointer
call fcn.0044da60
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x1e0]
mov dword [ecx + 0x94], esi
push eax
push str.Variable_was_not_found_in_function.
mov ecx, 0x4dba98
call fcn.0044da60
pop edi
pop esi
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x1e0]
jmp 0x49f4b4
lea eax, [esp + 0x408]
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4dba98
call fcn.0044da60
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x10]
push esi
push str.Invalid_structure_definition.
mov ecx, 0x4dba98
call fcn.0044da60
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x18]
mov ecx, dword [eax]
test ecx, ecx
je 0x49f504
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x49f504
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