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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x8864
call fcn.004b7170
push ebx
push esi
push edi
xor esi, esi
mov dword [esp + 0x64], edx
push 0x40
lea eax, [esp + 0x194]
mov dword [esp + 0x1c], esi
mov edi, ecx
push esi
push eax
mov dword [esp + 0x6c], edi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x110]
push 0x40
push esi
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x150]
xorps xmm0, xmm0
movaps xmmword [esp + 0xb0], xmm0
push 0x40
push esi
push eax
call sub.VCRUNTIME140.dll_memset
movq xmm0, qword [str._UInt]
lea eax, [esp + 0x84]
mov dword [esp + 0x4c], eax
add esp, 0xc
lea eax, [esp + 0xf0]
mov dword [esp + 0x80], 4
mov dword [esp + 0x44], eax
xor edx, edx
lea eax, [esp + 0x100]
mov dword [esp + 0x30], edx
mov dword [esp + 0x48], eax
mov eax, dword [0x4d9d74]
mov dword [esp + 0x1d8], eax
mov ax, word [0x4d9d78]
push 0x436
mov word [esp + 0x1e0], ax
lea eax, [esp + 0x1e2]
push edx
push eax
mov dword [esp + 0x58], edx
mov dword [esp + 0x38], edx
mov dword [esp + 0x104], 1
mov dword [esp + 0x114], 1
movq qword [esp + 0x1dc], xmm0
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 0x6c], esi
xor cl, cl
mov byte [esp + 0x24], cl
mov byte [esp + 0x1c], cl
push 0x34
call fcn.004b6030
mov ebx, eax
add esp, 4
xor eax, eax
mov dword [esp + 0x28], ebx
mov dword [ebx + 4], 1
mov dword [ebx], vtable.Struct.0
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], esi
mov dword [ebx + 0x10], esi
mov dword [ebx + 0x14], esi
mov byte [ebx + 0x18], 0
mov dword [ebx + 0x1c], esi
mov word [ebx + 0x20], ax
mov dword [ebx + 0x22], 0xffff0101
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x30], eax
mov ecx, dword [edi]
call fcn.0046d5e0
test eax, eax
je 0x49515a
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ecx, dword [edi]
push esi
call fcn.0046d5e0
mov ecx, eax
call fcn.00496ab0
mov esi, eax
mov eax, dword [esp + 0x64]
cmp eax, 2
jle 0x4950d1
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.0046d2d0
mov dword [esi + 0x14], eax
mov ecx, dword [edi + 8]
call fcn.0046d5e0
push eax
mov ecx, esi
call fcn.00496670
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 1
jle 0x495126
mov ecx, dword [edi + 4]
call fcn.0046d5e0
test eax, eax
je 0x495110
push dword [esi + 0x1c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov dword [esi + 0x14], eax
add esp, 4
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x2c], eax
mov ecx, dword [edi + 4]
call fcn.0046d5e0
push eax
mov ecx, esi
call fcn.00496670
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.0046d2d0
mov dword [esi + 0x14], eax
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esi + 0x1c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, dword [esi + 0x1c]
add esp, 4
mov dword [esi + 0x2c], ecx
mov edi, eax
mov dword [esi + 0x14], edi
test ecx, ecx
je 0x495151
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x495168.1
jmp dword [ecx*4 + 0x496640]
mov ecx, dword [eax]
push 0
push 1
call fcn.004016c0
mov edi, eax
mov dword [esp + 0x20], eax
jmp 0x495188
mov edi, dword [eax]
mov dword [esp + 0x20], edi
cmp word [edi], si
je 0x496598
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscspn]
xor ebx, ebx
mov ecx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
mov dword [esp + 0x50], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
mov dword [esp + 0x5c], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
mov dword [esp + 0x8c], eax
mov eax, dword [sym.imp.VCRUNTIME140.dll_wcschr]
mov dword [esp + 0x34], eax
mov eax, dword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov dword [esp + 0x94], eax
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wcstoi64]
mov dword [esp + 0x98], eax
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi64]
mov dword [esp + 0x9c], eax
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstol]
mov dword [esp + 0x90], eax
mov eax, dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x4c]
push 2
push 0x4d9d7c
push edi
mov dword [esp + 0x74], ebx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
call ecx
add esp, 0xc
test eax, eax
jne 0x495290
mov esi, edi
movzx edi, word [edi]
test di, di
je 0x495261
mov eax, edi
movzx edx, ax
mov ecx, 0x4d8ea4
mov eax, 0xa
nop
cmp dx, ax
je 0x4952df
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495240
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495232
mov edi, dword [esp + 0x20]
mov ecx, edi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495270
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
mov dword [esp + 0x20], edi
cmp word [edi], 0
je 0x49658d
movzx eax, word [edi]
mov esi, edi
test ax, ax
je 0x4952cd
nop word [eax + eax]
movzx edx, ax
mov ecx, str._n_r_t
mov eax, 0xa
nop dword [eax]
cmp dx, ax
je 0x4952cf
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4952b0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4952a0
xor esi, esi
cmp edi, esi
jne 0x495331
mov esi, dword [esp + 0x18]
add edi, 2
jmp 0x4962e2
mov esi, dword [esp + 0x20]
mov eax, edi
mov dword [esp + 0x20], esi
nop dword [eax]
movzx edx, ax
mov ecx, 0x4d8ea4
mov eax, 0xa
nop dword [eax]
cmp dx, ax
je 0x495328
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495300
movzx eax, word [esi + 2]
add esi, 2
mov dword [esp + 0x20], esi
test ax, ax
jne 0x4952f0
xor edi, edi
jmp 0x495282
mov edi, dword [esp + 0x20]
jmp 0x495286
push 0x7b
push edi
call dword [esp + 0x3c]
add esp, 8
test eax, eax
je 0x4953d5
movzx eax, word [edi]
mov esi, edi
test ax, ax
je 0x49544b
movzx edx, ax
mov ecx, 0x4d9d64
mov eax, 0x3b
nop
cmp dx, ax
je 0x495382
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495360
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495351
jmp 0x49544b
push 0x7b
push edi
call dword [esp + 0x3c]
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x20]
mov esi, eax
movzx eax, word [eax]
test ax, ax
je 0x4953d1
nop dword [eax]
movzx edx, ax
mov ecx, 0x4d9d64
mov eax, 0x3b
nop dword [eax]
cmp dx, ax
je 0x495447
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4953b0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4953a0
mov edi, dword [esp + 0x20]
movzx eax, word [edi]
cmp eax, 0x7d
jne 0x4955b3
mov esi, dword [esp + 0x4c]
mov ebx, dword [esp + 0x18]
mov eax, ebx
mov ecx, dword [esp + esi*4 + 0x190]
sub eax, ecx
mov edx, dword [esp + esi*4 + 0x110]
mov dword [esp + 0x30], edx
cmp eax, edx
jle 0x49540e
mov dword [esp + 0x30], eax
mov dword [esp + esi*4 + 0x110], eax
cmp esi, 1
jle 0x49550d
cmp byte [esp + esi + 0xaf], 0
je 0x49550d
mov ecx, dword [esp + esi*4 + 0x150]
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x49550f
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
jmp 0x49550f
cmp edi, esi
jae 0x4953d1
inc dword [esp + 0x4c]
xor edx, edx
mov edi, dword [esp + 0x58]
test edi, edi
mov esi, dword [esp + 0x94]
cmovne edx, ebx
mov ebx, dword [esp + 0x20]
push str.struct
push ebx
mov dword [esp + 0x38], edx
call esi
add esp, 8
test eax, eax
je 0x495494
push str.struct
push ebx
call esi
push 0x7b
push ebx
mov esi, eax
call dword [esp + 0x44]
add esp, 0x10
cmp esi, eax
jae 0x495494
mov al, 1
jmp 0x495496
xor al, al
mov ecx, ebx
mov byte [esp + edi + 0xb1], al
call fcn.0048f8e0
mov esi, dword [esp + 0x18]
movzx ecx, al
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x4954c1
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x54]
cmp dword [esp + 0x2c], ecx
push 0x7b
cmovg ecx, dword [esp + 0x30]
push ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + eax*4 + 0x15c], ecx
mov dword [esp + 0x34], 0
mov dword [esp + eax*4 + 0x19c], esi
mov dword [esp + eax*4 + 0x11c], 0
mov byte [esp + 0x2c], 0
mov byte [esp + 0x24], 0
call ebx
add esp, 8
lea edi, [eax + 2]
jmp 0x4962e2
mov ebx, ecx
mov ecx, dword [esp + esi*4 + 0x150]
mov edx, ebx
mov eax, dword [esp + 0x2c]
cmp ecx, eax
mov ebx, dword [esp + 0x30]
cmovg eax, ecx
mov byte [esp + 0x24], 0
cmp ebx, dword [esp + 0x68]
mov dword [esp + 0x2c], eax
cmovle ebx, dword [esp + 0x68]
sub esi, 1
mov dword [esp + 0x4c], esi
mov dword [esp + 0x30], ebx
mov byte [esp + 0x1c], 0
lea eax, [edx + ebx]
cmovne eax, edx
add edi, 2
mov dword [esp + 0x18], eax
mov esi, edi
mov dword [esp + 0x20], edi
je 0x4955a3
movzx eax, word [edi]
test ax, ax
je 0x49559d
nop dword [eax]
nop dword [eax + eax]
movzx edx, ax
mov ecx, 0x4d9d64
mov eax, 0x3b
nop dword [eax]
cmp dx, ax
je 0x49559f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495580
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495570
xor esi, esi
cmp edi, esi
jne 0x4955aa
add edi, 2
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0x18]
jmp 0x4962ea
mov dword [esp + 0x54], 0
mov esi, edi
mov dword [esp + 0x58], 0
test ax, ax
je 0x495601
nop word [eax + eax]
movzx edx, ax
mov ecx, 0x4d9da0
mov eax, 0x7d
nop dword [eax]
cmp dx, ax
je 0x495695
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4955e0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4955d0
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495606
sub ecx, edx
sar ecx, 1
cmp ecx, 0x4000
ja 0x4962fd
lea edx, [esp + 0x868]
mov ecx, edi
sub edx, edi
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x495630
mov edi, dword [esp + 0x5c]
cmp word [esp + 0x868], 0
je 0x4956e9
lea ecx, [esp + 0x868]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495660
sub ecx, edx
sar ecx, 1
lea eax, [esp + ecx*2 + 0x866]
movzx ecx, word [eax]
mov edx, ecx
cmp ecx, 0x20
je 0x495685
cmp ecx, 9
jne 0x4956d2
lea ecx, [esp + 0x868]
cmp eax, ecx
je 0x4956da
sub eax, 2
jmp 0x495676
push 0x4d9da0
push edi
call dword [esp + 0x58]
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x4962fd
push esi
push edi
mov edi, dword [esp + 0x64]
lea eax, [esp + 0x870]
push eax
call edi
add esp, 0xc
xor eax, eax
mov word [esp + esi*2 + 0x868], ax
jmp 0x495644
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x4956e9
cmp edx, 0x20
je 0x4956e4
cmp edx, 9
jne 0x4956e9
xor ecx, ecx
mov word [eax], cx
mov ebx, dword [esp + 0x34]
lea eax, [esp + 0x868]
push 0x2a
push eax
call ebx
add esp, 8
test eax, eax
je 0x49573f
lea eax, [esp + 0x868]
push 0x3a
push eax
call ebx
add esp, 8
test eax, eax
jne 0x496320
push eax
push eax
push 0x4001
push 0xffffffffffffffff
push 1
push 0x4b8c14
mov edx, 0x4d1c30
lea ecx, [esp + 0x880]
call fcn.0049c9f0
add esp, 0x18
mov dword [esp + 0x54], eax
lea eax, [esp + 0x868]
push 0x5b
push eax
call ebx
add esp, 8
test eax, eax
je 0x495801
push 0x14
lea eax, [esp + 0x86c]
push 0x5b
push eax
call ebx
add esp, 8
push eax
lea eax, [esp + 0xcc]
push eax
call edi
add esp, 0xc
lea eax, [esp + 0xc4]
push 0x4d9de4
push eax
call dword [esp + 0x58]
xor ecx, ecx
add esp, 8
mov word [esp + eax*2 + 0xc6], cx
lea ecx, [esp + 0xc6]
call fcn.00404a50
test al, al
lea eax, [esp + 0xc6]
je 0x4957bb
push 0x10
push 0
push eax
call dword [esp + 0xa4]
add esp, 0xc
jmp 0x4957c6
push eax
call dword [esp + 0xa0]
add esp, 4
push 0
push 0
push 0x4001
push 0xffffffffffffffff
push 1
push 0x4b8c14
lea edx, [esp + 0xdc]
mov dword [esp + 0x70], eax
lea ecx, [esp + 0x880]
call fcn.0049c9f0
add esp, 0x18
lea ecx, [esp + 0x868]
or edx, 0xffffffff
call fcn.004262a0
mov di, word [esp + 0x868]
lea esi, [esp + 0x868]
test di, di
je 0x49588d
movzx eax, di
nop dword [eax + eax]
movzx edx, ax
mov ecx, 0x4cf49c
mov eax, 0x20
nop dword [eax]
cmp dx, ax
je 0x4958ad
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495830
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495820
lea esi, [esp + 0x868]
movzx eax, di
nop word [eax + eax]
movzx edx, ax
mov ecx, 0x4d9da0
mov eax, 0x7d
nop dword [eax]
cmp dx, ax
je 0x4958ad
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495870
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495860
mov ecx, dword [esp + 0x20]
mov edx, 0x4d9da0
call fcn.00406460
test eax, eax
jne 0x495b3a
cmp dword [esp + 0x18], eax
jne 0x495b3a
lea eax, [esp + 0x868]
push 0x4d2578
push eax
call dword [esp + 0x58]
mov esi, eax
add esp, 8
cmp esi, 0x218
ja 0x49634a
lea ecx, [esp + 0x868]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x4958e3
cmp eax, 9
jne 0x4958e8
add ecx, 2
jmp 0x4958d6
mov edx, 0x4cf49c
call fcn.00406460
mov ebx, eax
test ebx, ebx
je 0x4958fe
cmp word [ebx], 0x3a
je 0x495970
lea ecx, [esp + 0x1d0]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495910
sub ecx, edx
sar ecx, 1
lea eax, [ecx - 2]
push eax
lea eax, [esp + 0x86c]
push eax
lea eax, [esp + 0x1da]
push eax
call dword [esp + 0x98]
add esp, 0xc
test eax, eax
je 0x49594b
mov byte [esp + 0x24], 0
mov byte [esp + 0x1c], 0
push esi
lea eax, [esp + 0x86c]
push eax
lea eax, [esp + 0x1da]
push eax
mov eax, dword [esp + 0x68]
call eax
add esp, 0xc
mov dword [esp + esi*2 + 0x1d2], 0x20
mov di, word [esp + 0x868]
lea esi, [esp + 0x868]
mov eax, dword [esp + 0x1c]
mov byte [esp + 0x3b], al
test di, di
je 0x4959bd
movzx eax, di
nop
movzx edx, ax
mov ecx, 0x4da00c
mov eax, 0x20
nop dword [eax]
cmp dx, ax
je 0x4959cc
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4959a0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495990
xor eax, eax
mov word [esp + 0x618], ax
jmp 0x495bde
lea edx, [esp + 0x868]
movzx eax, di
nop word [eax + eax]
movzx esi, ax
mov ecx, 0x4da00c
mov eax, 0x20
nop dword [eax]
cmp si, ax
je 0x495a0f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4959f0
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
jne 0x4959e0
xor edx, edx
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x495a12
sub edx, ecx
sar edx, 1
cmp edx, 0x11b
ja 0x49634a
test ebx, ebx
je 0x495a40
cmp word [ebx], 0x3a
jne 0x495a40
lea edx, [esp + 0x868]
jmp 0x495a7f
lea edx, [esp + 0x868]
movzx eax, di
nop word [eax + eax]
movzx esi, ax
mov ecx, 0x4da00c
mov eax, 0x20
nop dword [eax]
cmp si, ax
je 0x495a7f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495a60
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
jne 0x495a50
xor edx, edx
lea ecx, [esp + 0x618]
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x495a86
mov edi, dword [esp + 0x34]
lea eax, [esp + 0x618]
push 0x3a
push eax
call edi
mov esi, eax
add esp, 8
test esi, esi
je 0x495b0e
xor eax, eax
xor edx, edx
mov word [esi], ax
mov eax, dword [esp + 0x1c]
movzx ecx, al
movzx eax, byte [esp + 0x3b]
shr ecx, 3
cmp ecx, dword [esp + 0x3c]
cmovne edx, eax
add esi, 2
mov ecx, esi
mov dword [esp + 0x1c], edx
call fcn.00404a50
test al, al
je 0x495afa
push 0x10
push 0
push esi
call dword [esp + 0x9c]
mov bl, al
add esp, 0xc
add byte [esp + 0x1c], bl
mov byte [esp + 0x24], bl
jmp 0x495b18
push esi
call dword [esp + 0x78]
mov bl, al
add esp, 4
add byte [esp + 0x1c], bl
mov byte [esp + 0x24], bl
jmp 0x495b18
mov byte [esp + 0x24], 0
mov byte [esp + 0x1c], 0
or edx, 0xffffffff
lea ecx, [esp + 0x618]
call fcn.00426230
mov edx, eax
lea ecx, [esp + 0x618]
call fcn.004262a0
jmp 0x495be2
lea ecx, [esp + 0x868]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495b44
sub ecx, edx
sar ecx, 1
cmp ecx, 0x125
ja 0x49634a
push 0x125
lea eax, [esp + 0x86c]
push eax
lea eax, [esp + 0x620]
push eax
mov eax, dword [esp + 0x68]
call eax
add esp, 0xc
lea eax, [esp + 0x618]
push 0x3a
push eax
call ebx
add esp, 8
test eax, eax
je 0x495bbf
xor ecx, ecx
mov word [eax], cx
lea ecx, [eax + 2]
call fcn.00417020
mov bl, al
xor edx, edx
mov eax, dword [esp + 0x1c]
movzx ecx, al
shr ecx, 3
cmp ecx, dword [esp + 0x3c]
movzx eax, al
cmovne edx, eax
mov byte [esp + 0x24], bl
add dl, bl
mov byte [esp + 0x1c], dl
mov edx, 0xffffffff
lea ecx, [esp + 0x618]
call fcn.00426230
mov edx, eax
lea ecx, [esp + 0x618]
call fcn.004262a0
mov edi, dword [esp + 0x34]
mov ecx, str._bool
lea eax, [esp + 0x1d0]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x495c16
test dx, dx
je 0x495c12
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x495c16
add eax, 4
add ecx, 4
test dx, dx
jne 0x495bf0
xor eax, eax
jmp 0x495c1b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x495c2a
mov ecx, 1
mov dword [esp + 0x3c], ecx
jmp 0x495c64
xor esi, esi
nop dword [eax]
mov ecx, dword [esi*4 + 0x4db528]
lea edx, [esp + 0x1d0]
call fcn.0049c600
test eax, eax
jne 0x495c4f
inc esi
cmp esi, 8
jl 0x495c30
jmp 0x495c55
lea eax, [esi + 1]
movzx eax, ax
movsx ecx, ax
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x495df7
mov edi, dword [esp + 0x54]
test edi, edi
je 0x495cb1
mov esi, dword [esp + 0x18]
mov ecx, esi
and ecx, reloc.WSOCK32.dll_closesocket
jns 0x495c81
dec ecx
or ecx, 0xfffffffc
add ecx, 1
je 0x495c9c
mov eax, 4
sub eax, ecx
and eax, reloc.WSOCK32.dll_closesocket
jns 0x495c96
dec eax
or eax, 0xfffffffc
inc eax
add esi, eax
mov dword [esp + 0x18], esi
cmp dword [esp + 0x2c], 4
mov bl, byte [esp + 0x24]
jge 0x495ce6
mov dword [esp + 0x2c], 4
jmp 0x495ce6
mov bl, byte [esp + 0x24]
test bl, bl
je 0x495cbf
cmp byte [esp + 0x1c], bl
jne 0x495cd9
mov esi, dword [esp + 0x18]
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x495cd9
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x2c]
cmp ecx, eax
cmovg eax, ecx
mov dword [esp + 0x2c], eax
lea edx, [esp + 0x1d0]
mov ecx, str._TCHAR_LPTSTR_LPCTSTR_LPWSTR_LPCWSTR_WCHAR
call fcn.0049c600
test eax, eax
je 0x495d02
mov esi, 0x4b0
jmp 0x495d1c
lea edx, [esp + 0x1d0]
mov ecx, str._CHAR_LPSTR_LPCSTR_UCHAR
call fcn.0049c600
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
test edi, edi
je 0x495d27
mov edi, 1
jmp 0x495d3f
lea edx, [esp + 0x1d0]
mov ecx, str._FLOAT_DOUBLE_PFLOAT_PDOUBLE
call fcn.0049c600
mov edi, eax
neg edi
sbb edi, edi
inc edi
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
je 0x495d5b
test bl, bl
je 0x495d5b
cmp cl, bl
je 0x495d5b
mov ebx, eax
sub ebx, dword [esp + 0x3c]
jmp 0x495d5d
mov ebx, eax
mov al, cl
lea edx, [esp + 0x1d0]
sub al, byte [esp + 0x24]
mov ecx, str._PTR_SHORT_INT_INT8_INT16_INT32_INT64_CHAR_ACCESS_MASK_PVOID_VOID_HALF_PTR_BOOL_LONG_LONG32_LONGLONG_LONG64_USN_INT_PTR_LONG_PTR_POINTER_64_POINTER_SIGNED_SIGNED_SSIZE_T_WPARAM___int64
movzx eax, al
push eax
push dword [esp + 0x28]
push esi
call fcn.0049c600
mov esi, dword [esp + 0x64]
test eax, eax
sete al
movzx eax, al
push eax
push edi
push dword [esp + 0x50]
mov edi, dword [esp + 0x40]
lea eax, [esp + 0x84]
push 0
push esi
push ebx
mov ebx, dword [esp + 0x78]
mov ecx, edi
push ebx
push eax
lea eax, [esp + 0x644]
push eax
call fcn.00499460
test eax, eax
je 0x49635e
mov al, byte [esp + 0x24]
test al, al
je 0x495dcd
cmp byte [esp + 0x1c], al
jne 0x4961f7
mov ecx, dword [esp + 0x3c]
test ebx, ebx
mov eax, 4
cmovne ecx, eax
test esi, esi
mov eax, 1
cmovne eax, esi
mov esi, dword [esp + 0x18]
imul ecx, eax
add esi, ecx
mov dword [esp + 0x18], esi
jmp 0x4961fb
lea eax, [esp + 0x1d0]
mov dword [esp + 0x78], 0
push 0x28
push eax
call edi
add esp, 8
test eax, eax
mov eax, dword [0x4e211c]
je 0x495f0c
mov esi, dword [eax + 0xb4]
lea eax, [esp + 0x1d0]
mov ebx, dword [esp + 0x50]
push 0
push 0x4d9e40
push eax
call ebx
add esp, 8
dec eax
mov ecx, 0x4e6d58
push eax
lea eax, [esp + 0x1da]
push eax
call fcn.004393e0
mov ecx, dword [0x4e211c]
mov dword [ecx + 0xb4], eax
test eax, eax
je 0x49636d
xor ecx, ecx
movzx eax, word [esp + ecx + 0x1d2]
lea ecx, [ecx + 2]
mov word [esp + ecx + 0x866], ax
test ax, ax
jne 0x495e63
lea eax, [esp + 0x868]
push 0x4d9e40
push eax
call ebx
lea ecx, [esp + 0x872]
add esp, 8
lea edx, [esp + 0x1d2]
lea ecx, [ecx + eax*2]
sub edx, ecx
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x495ea0
lea eax, [esp + 0x1d0]
push 0x29
push eax
call edi
lea ecx, [esp + 0x1d8]
add esp, 8
lea edx, [ecx + 2]
mov dword [eax], 0x20
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495ed0
sub ecx, edx
push 0
sar ecx, 1
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4e6d58
push eax
lea eax, [esp + 0x1e2]
push eax
call fcn.0043b030
mov dword [esp + 0x78], eax
mov eax, dword [0x4e211c]
mov dword [eax + 0xb4], esi
jmp 0x495f4f
cmp dword [eax + 0xb4], 0
je 0x495f4f
lea ecx, [esp + 0x1d0]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495f20
sub ecx, edx
push 0
sar ecx, 1
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4e6d58
push eax
lea eax, [esp + 0x1e2]
push eax
call fcn.0043b030
mov dword [esp + 0x78], eax
cmp dword [esp + 0x78], 0
jne 0x495f97
lea ecx, [esp + 0x1d0]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495f60
sub ecx, edx
push 0
sar ecx, 1
push 1
push 0
lea eax, [ecx - 2]
mov ecx, 0x4e6d58
push eax
lea eax, [esp + 0x1e2]
push eax
call fcn.0043b030
mov dword [esp + 0x78], eax
test eax, eax
je 0x496563
mov edi, dword [esp + 0x54]
test edi, edi
jne 0x49613c
mov ebx, dword [esp + 0x20]
mov ecx, ebx
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495fb0
sub ecx, edx
lea eax, [esp + 0x868]
sar ecx, 1
push ecx
push ebx
push eax
call dword [esp + 0x7c]
add esp, 0xc
test eax, eax
jne 0x495fe2
cmp word [esp + 0x618], ax
je 0x49639d
mov eax, dword [esp + 0x80]
cmp eax, 5
ja case.0x495fee.1
jmp dword [eax*4 + 0x496658]
mov ecx, dword [esp + 0x78]
push 0
push 1
call fcn.004016c0
jmp 0x49600f
mov eax, dword [esp + 0x78]
jmp 0x49600f
mov eax, 0x4b8c14
mov ecx, eax
call fcn.0048f8e0
mov ecx, dword [esp + 0x2c]
mov bl, byte [esp + 0x24]
movzx eax, al
cmp eax, ecx
cmovg ecx, eax
mov dword [esp + 0x2c], ecx
test bl, bl
je 0x496034
cmp byte [esp + 0x1c], bl
jne 0x496054
mov esi, dword [esp + 0x18]
test esi, esi
je 0x496058
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x496058
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x18], esi
jmp 0x496058
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x44]
mov eax, esi
cdq
push 3
mov dword [ecx], eax
lea eax, [esp + 0x30]
mov dword [ecx + 4], edx
mov ecx, dword [esp + 0x4c]
cdq
mov dword [ecx], eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0xa8]
mov dword [ecx + 4], edx
push eax
lea eax, [esp + 0x74]
push eax
call fcn.0048fb80
add esp, 0x10
cmp dword [esp + 0xa8], 1
jne 0x496563
test bl, bl
je 0x4960a8
mov eax, dword [esp + 0x1c]
cmp al, bl
jne 0x4960c6
mov ecx, dword [esp + 0x2c]
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x4960c2
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0xa0]
movzx ecx, bl
test bl, bl
jne 0x4960da
mov ecx, esi
sub al, bl
mov ebx, dword [esp + 0x58]
movzx eax, al
push eax
push dword [esp + 0x28]
lea eax, [esp + 0x74]
push 0xffff
push 1
push 1
push ecx
push dword [esp + 0x90]
mov ecx, dword [esp + 0x44]
push ebx
push edx
push edi
push eax
lea eax, [esp + 0x644]
push eax
call fcn.00499460
test eax, eax
je 0x49657a
test edi, edi
je 0x4961c7
mov esi, dword [esp + 0x18]
test ebx, ebx
mov eax, 1
cmovne eax, ebx
lea esi, [esi + eax*4]
mov dword [esp + 0x18], esi
jmp 0x4961fb
mov eax, dword [esp + 0x44]
push 1
mov dword [eax], 0
mov dword [eax + 4], 0
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0xa8]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.0048fb80
add esp, 0x10
cmp dword [esp + 0xa8], 1
jne 0x496563
mov edx, dword [esp + 0x18]
mov ecx, edx
and ecx, reloc.WSOCK32.dll_closesocket
jns 0x49618c
dec ecx
or ecx, 0xfffffffc
add ecx, 1
je 0x4961a7
mov eax, 4
sub eax, ecx
and eax, reloc.WSOCK32.dll_closesocket
jns 0x4961a1
dec eax
or eax, 0xfffffffc
inc eax
add edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x2c]
mov ecx, 4
mov bl, byte [esp + 0x24]
cmp eax, 4
cmovl eax, ecx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x1c]
jmp 0x4960ca
mov al, byte [esp + 0x24]
test al, al
je 0x4961d5
cmp byte [esp + 0x1c], al
jne 0x4961f7
test ebx, ebx
je 0x4961ed
mov ecx, esi
lea eax, [ebx - 1]
sub ecx, dword [esp + 0x18]
imul ecx, eax
add esi, ecx
mov dword [esp + 0x18], esi
jmp 0x4961fb
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x18], esi
jmp 0x4961fb
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x496238
mov ecx, dword [esp + edx*4 + 0x190]
mov eax, esi
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0x110]
jle 0x49621e
mov dword [esp + edx*4 + 0x110], eax
cmp byte [esp + edx + 0xb0], 0
jne 0x496238
mov esi, ecx
mov byte [esp + 0x1c], 0
mov dword [esp + 0x18], esi
mov byte [esp + 0x24], 0
mov edi, dword [esp + 0x20]
mov ebx, dword [esp + 0x34]
push 0x7d
push edi
call ebx
add esp, 8
test eax, eax
je 0x49628c
mov edx, 0x4d9d64
mov ecx, edi
call fcn.00406460
test eax, eax
je 0x49627a
push 0x7d
push edi
call ebx
add esp, 8
mov edx, 0x4d9d64
mov ecx, edi
mov esi, eax
call fcn.00406460
cmp esi, eax
mov esi, dword [esp + 0x18]
jae 0x49628c
push 0x4cd418
push edi
call dword [esp + 0x58]
add esp, 8
lea edi, [edi + eax*2]
jmp 0x4962e2
mov edx, 0x4d9d64
mov ecx, edi
call fcn.00406460
test eax, eax
je 0x4962b1
push 0x4d9d64
push edi
call dword [esp + 0x58]
add esp, 8
lea edi, [edi + eax*2]
add edi, 2
jmp 0x4962e2
cmp word [esp + 0x618], 0
jne 0x4962c4
mov eax, dword [esp + 0x28]
mov byte [eax + 0x18], 1
mov ecx, edi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4962d0
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x20], edi
cmp word [edi], 0
je 0x496598
mov ecx, dword [esp + 0x70]
jmp 0x495205
mov ecx, dword [esp + 0x28]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push edi
push str.Invalid_structure_definition.
mov ecx, 0x4e6d58
call fcn.00447a20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x28]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x868]
mov ecx, 0x4e6d58
push eax
push 0x4d9de8
call fcn.00447a20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x28]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x868]
push eax
jmp 0x496308
mov eax, dword [edi]
push edi
call dword [eax + 8]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ecx + 0xb4], esi
mov ecx, dword [esp + 0x28]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x1d0]
mov ecx, 0x4e6d58
push eax
push str.Variable_was_not_found_in_function.
call fcn.00447a20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x28]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov esi, dword [esp + 0x64]
cmp esi, 1
jne 0x496411
mov ecx, dword [esp + 0x40]
call fcn.0046d5e0
test eax, eax
je 0x4963fc
mov ecx, dword [esp + 0x40]
push 0
call fcn.0046d5e0
mov ecx, eax
call fcn.00496ab0
mov esi, eax
push dword [esi + 0x1c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, dword [esi + 0x1c]
add esp, 4
mov dword [esi + 0x2c], ecx
xor edx, edx
mov dword [esi + 0x14], eax
push ecx
mov ecx, eax
call fcn.00405b80
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 1
lea ecx, [esp + 0x40]
call fcn.00494f30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x60]
jle 0x49644b
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x44]
mov dword [eax + 8], ecx
mov eax, dword [ebx + 4]
mov ecx, dword [eax]
mov eax, dword [esp + 0x44]
mov dword [eax], ecx
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x44]
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov eax, dword [ebx + 4]
mov ecx, dword [eax]
mov eax, dword [esp + 0x44]
mov dword [eax], ecx
cmp esi, 2
jle 0x4964d5
mov eax, dword [ebx + 8]
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x48]
mov dword [eax + 8], ecx
mov eax, dword [ebx + 8]
mov ecx, dword [eax]
mov eax, dword [esp + 0x48]
mov dword [eax], ecx
mov eax, dword [ebx + 8]
mov ecx, dword [eax]
mov eax, dword [esp + 0x48]
mov dword [eax], ecx
mov ecx, dword [esp + 0x40]
call fcn.0046d5e0
test eax, eax
je 0x4964c0
mov ecx, dword [esp + 0x40]
push 0
call fcn.0046d5e0
mov ecx, eax
call fcn.00496ab0
mov esi, eax
mov dword [esi + 0x2c], 0
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx]
mov dword [esi + 0x14], ecx
mov ecx, dword [ebx + 8]
call fcn.0046d5e0
push eax
mov ecx, esi
call fcn.00496670
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 3
lea ecx, [esp + 0x40]
call fcn.00494f30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x40]
call fcn.0046d5e0
test eax, eax
je 0x49654e
mov ecx, dword [esp + 0x40]
push 0
call fcn.0046d5e0
mov ecx, eax
call fcn.00496ab0
mov ecx, dword [ebx + 4]
mov esi, eax
call fcn.0046d5e0
test eax, eax
je 0x49653d
push dword [esi + 0x1c]
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov ecx, dword [esi + 0x1c]
add esp, 4
mov dword [esi + 0x2c], ecx
xor edx, edx
mov dword [esi + 0x14], eax
push ecx
mov ecx, eax
call fcn.00405b80
mov ecx, dword [ebx + 4]
add esp, 4
call fcn.0046d5e0
push eax
mov ecx, esi
call fcn.00496670
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov dword [esi + 0x14], eax
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 2
lea ecx, [esp + 0x40]
call fcn.00494f30
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x28]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x1d0]
push eax
jmp 0x496308
mov ecx, dword [esp + 0x28]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov esi, dword [esp + 0x18]
jmp 0x496598
mov edi, 0x4b8c14
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4965b2
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x4965b2
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
test esi, esi
je 0x4962fd
cmp dword [esp + 0x64], 1
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x60]
mov dword [ebx + 0x1c], esi
jle 0x4965ee
mov ecx, dword [edi + 4]
call fcn.0046d1c0
test eax, eax
je 0x4965ee
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.0046d2d0
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x2c], 0
jmp 0x49660b
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov dword [ebx + 0x14], eax
xor edx, edx
mov dword [ebx + 0x2c], esi
mov ecx, eax
push esi
call fcn.00405b80
add esp, 4
mov esi, dword [esp + 0x64]
cmp esi, 1
jle 0x496620
mov ecx, dword [edi + 4]
call fcn.0046d1c0
test eax, eax
je 0x496625
cmp esi, 2
jle 0x496636
mov ecx, dword [edi + esi*4 - 4]
call fcn.0046d5e0
push eax
mov ecx, ebx
call fcn.00496670
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret