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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x8864
call fcn.004b7400
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 [0x4dad44]
mov dword [esp + 0x1d8], eax
mov ax, word [0x4dad48]
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.004b64c6
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.0046dea0
test eax, eax
je 0x49558a
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ecx, dword [edi]
push esi
call fcn.0046dea0
mov ecx, eax
call fcn.00496ee0
mov esi, eax
mov eax, dword [esp + 0x64]
cmp eax, 2
jle 0x495501
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.0046db90
mov dword [esi + 0x14], eax
mov ecx, dword [edi + 8]
call fcn.0046dea0
push eax
mov ecx, esi
call fcn.00496aa0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp eax, 1
jle 0x495556
mov ecx, dword [edi + 4]
call fcn.0046dea0
test eax, eax
je 0x495540
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.0046dea0
push eax
mov ecx, esi
call fcn.00496aa0
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.0046db90
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 0x495581
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.0x495598.1
jmp dword [ecx*4 + 0x496a70]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401670
mov edi, eax
mov dword [esp + 0x20], eax
jmp 0x4955b8
mov edi, dword [eax]
mov dword [esp + 0x20], edi
cmp word [edi], si
je 0x4969c8
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 0x4dad4c
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 0x4956c0
mov esi, edi
movzx edi, word [edi]
test di, di
je 0x495691
mov eax, edi
movzx edx, ax
mov ecx, 0x4d9e70
mov eax, 0xa
nop
cmp dx, ax
je 0x49570f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495670
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495662
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 0x4956a0
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
mov dword [esp + 0x20], edi
cmp word [edi], 0
je 0x4969bd
movzx eax, word [edi]
mov esi, edi
test ax, ax
je 0x4956fd
nop word [eax + eax]
movzx edx, ax
mov ecx, str._n_r_t
mov eax, 0xa
nop dword [eax]
cmp dx, ax
je 0x4956ff
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4956e0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4956d0
xor esi, esi
cmp edi, esi
jne 0x495761
mov esi, dword [esp + 0x18]
add edi, 2
jmp 0x496712
mov esi, dword [esp + 0x20]
mov eax, edi
mov dword [esp + 0x20], esi
nop dword [eax]
movzx edx, ax
mov ecx, 0x4d9e70
mov eax, 0xa
nop dword [eax]
cmp dx, ax
je 0x495758
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495730
movzx eax, word [esi + 2]
add esi, 2
mov dword [esp + 0x20], esi
test ax, ax
jne 0x495720
xor edi, edi
jmp 0x4956b2
mov edi, dword [esp + 0x20]
jmp 0x4956b6
push 0x7b
push edi
call dword [esp + 0x3c]
add esp, 8
test eax, eax
je 0x495805
movzx eax, word [edi]
mov esi, edi
test ax, ax
je 0x49587b
movzx edx, ax
mov ecx, 0x4dad34
mov eax, 0x3b
nop
cmp dx, ax
je 0x4957b2
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495790
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495781
jmp 0x49587b
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 0x495801
nop dword [eax]
movzx edx, ax
mov ecx, 0x4dad34
mov eax, 0x3b
nop dword [eax]
cmp dx, ax
je 0x495877
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4957e0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4957d0
mov edi, dword [esp + 0x20]
movzx eax, word [edi]
cmp eax, 0x7d
jne 0x4959e3
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 0x49583e
mov dword [esp + 0x30], eax
mov dword [esp + esi*4 + 0x110], eax
cmp esi, 1
jle 0x49593d
cmp byte [esp + esi + 0xaf], 0
je 0x49593d
mov ecx, dword [esp + esi*4 + 0x150]
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x49593f
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
jmp 0x49593f
cmp edi, esi
jae 0x495801
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 0x4958c4
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 0x4958c4
mov al, 1
jmp 0x4958c6
xor al, al
mov ecx, ebx
mov byte [esp + edi + 0xb1], al
call fcn.0048fd10
mov esi, dword [esp + 0x18]
movzx ecx, al
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x4958f1
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 0x496712
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 0x4959d3
movzx eax, word [edi]
test ax, ax
je 0x4959cd
nop dword [eax]
nop dword [eax + eax]
movzx edx, ax
mov ecx, 0x4dad34
mov eax, 0x3b
nop dword [eax]
cmp dx, ax
je 0x4959cf
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4959b0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4959a0
xor esi, esi
cmp edi, esi
jne 0x4959da
add edi, 2
mov dword [esp + 0x20], edi
mov esi, dword [esp + 0x18]
jmp 0x49671a
mov dword [esp + 0x54], 0
mov esi, edi
mov dword [esp + 0x58], 0
test ax, ax
je 0x495a31
nop word [eax + eax]
movzx edx, ax
mov ecx, 0x4dad70
mov eax, 0x7d
nop dword [eax]
cmp dx, ax
je 0x495ac5
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495a10
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495a00
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495a36
sub ecx, edx
sar ecx, 1
cmp ecx, 0x4000
ja 0x49672d
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 0x495a60
mov edi, dword [esp + 0x5c]
cmp word [esp + 0x868], 0
je 0x495b19
lea ecx, [esp + 0x868]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495a90
sub ecx, edx
sar ecx, 1
lea eax, [esp + ecx*2 + 0x866]
movzx ecx, word [eax]
mov edx, ecx
cmp ecx, 0x20
je 0x495ab5
cmp ecx, 9
jne 0x495b02
lea ecx, [esp + 0x868]
cmp eax, ecx
je 0x495b0a
sub eax, 2
jmp 0x495aa6
push 0x4dad70
push edi
call dword [esp + 0x58]
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x49672d
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 0x495a74
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x495b19
cmp edx, 0x20
je 0x495b14
cmp edx, 9
jne 0x495b19
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 0x495b6f
lea eax, [esp + 0x868]
push 0x3a
push eax
call ebx
add esp, 8
test eax, eax
jne 0x496750
push eax
push eax
push 0x4001
push 0xffffffffffffffff
push 1
push 0x4b9c10
mov edx, 0x4d2c30
lea ecx, [esp + 0x880]
call fcn.0049ce20
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 0x495c31
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 0x4dadb4
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.00404af0
test al, al
lea eax, [esp + 0xc6]
je 0x495beb
push 0x10
push 0
push eax
call dword [esp + 0xa4]
add esp, 0xc
jmp 0x495bf6
push eax
call dword [esp + 0xa0]
add esp, 4
push 0
push 0
push 0x4001
push 0xffffffffffffffff
push 1
push 0x4b9c10
lea edx, [esp + 0xdc]
mov dword [esp + 0x70], eax
lea ecx, [esp + 0x880]
call fcn.0049ce20
add esp, 0x18
lea ecx, [esp + 0x868]
or edx, 0xffffffff
call fcn.00426470
mov di, word [esp + 0x868]
lea esi, [esp + 0x868]
test di, di
je 0x495cbd
movzx eax, di
nop dword [eax + eax]
movzx edx, ax
mov ecx, 0x4d049c
mov eax, 0x20
nop dword [eax]
cmp dx, ax
je 0x495cdd
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495c60
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495c50
lea esi, [esp + 0x868]
movzx eax, di
nop word [eax + eax]
movzx edx, ax
mov ecx, 0x4dad70
mov eax, 0x7d
nop dword [eax]
cmp dx, ax
je 0x495cdd
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495ca0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495c90
mov ecx, dword [esp + 0x20]
mov edx, 0x4dad70
call fcn.00406300
test eax, eax
jne 0x495f6a
cmp dword [esp + 0x18], eax
jne 0x495f6a
lea eax, [esp + 0x868]
push 0x4d3578
push eax
call dword [esp + 0x58]
mov esi, eax
add esp, 8
cmp esi, 0x218
ja 0x49677a
lea ecx, [esp + 0x868]
movzx eax, word [ecx]
cmp eax, 0x20
je 0x495d13
cmp eax, 9
jne 0x495d18
add ecx, 2
jmp 0x495d06
mov edx, 0x4d049c
call fcn.00406300
mov ebx, eax
test ebx, ebx
je 0x495d2e
cmp word [ebx], 0x3a
je 0x495da0
lea ecx, [esp + 0x1d0]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495d40
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 0x495d7b
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 0x495ded
movzx eax, di
nop
movzx edx, ax
mov ecx, 0x4db014
mov eax, 0x20
nop dword [eax]
cmp dx, ax
je 0x495dfc
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495dd0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495dc0
xor eax, eax
mov word [esp + 0x618], ax
jmp 0x49600e
lea edx, [esp + 0x868]
movzx eax, di
nop word [eax + eax]
movzx esi, ax
mov ecx, 0x4db014
mov eax, 0x20
nop dword [eax]
cmp si, ax
je 0x495e3f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495e20
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
jne 0x495e10
xor edx, edx
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x495e42
sub edx, ecx
sar edx, 1
cmp edx, 0x11b
ja 0x49677a
test ebx, ebx
je 0x495e70
cmp word [ebx], 0x3a
jne 0x495e70
lea edx, [esp + 0x868]
jmp 0x495eaf
lea edx, [esp + 0x868]
movzx eax, di
nop word [eax + eax]
movzx esi, ax
mov ecx, 0x4db014
mov eax, 0x20
nop dword [eax]
cmp si, ax
je 0x495eaf
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495e90
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
jne 0x495e80
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 0x495eb6
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 0x495f3e
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.00404af0
test al, al
je 0x495f2a
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 0x495f48
push esi
call dword [esp + 0x78]
mov bl, al
add esp, 4
add byte [esp + 0x1c], bl
mov byte [esp + 0x24], bl
jmp 0x495f48
mov byte [esp + 0x24], 0
mov byte [esp + 0x1c], 0
or edx, 0xffffffff
lea ecx, [esp + 0x618]
call fcn.00426400
mov edx, eax
lea ecx, [esp + 0x618]
call fcn.00426470
jmp 0x496012
lea ecx, [esp + 0x868]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495f74
sub ecx, edx
sar ecx, 1
cmp ecx, 0x125
ja 0x49677a
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 0x495fef
xor ecx, ecx
mov word [eax], cx
lea ecx, [eax + 2]
call fcn.00416fe0
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.00426400
mov edx, eax
lea ecx, [esp + 0x618]
call fcn.00426470
mov edi, dword [esp + 0x34]
mov ecx, str._bool
lea eax, [esp + 0x1d0]
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x496046
test dx, dx
je 0x496042
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x496046
add eax, 4
add ecx, 4
test dx, dx
jne 0x496020
xor eax, eax
jmp 0x49604b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49605a
mov ecx, 1
mov dword [esp + 0x3c], ecx
jmp 0x496094
xor esi, esi
nop dword [eax]
mov ecx, dword [esi*4 + 0x4dc710]
lea edx, [esp + 0x1d0]
call fcn.0049ca30
test eax, eax
jne 0x49607f
inc esi
cmp esi, 8
jl 0x496060
jmp 0x496085
lea eax, [esi + 1]
movzx eax, ax
movsx ecx, ax
mov dword [esp + 0x3c], ecx
test ecx, ecx
je 0x496227
mov edi, dword [esp + 0x54]
test edi, edi
je 0x4960e1
mov esi, dword [esp + 0x18]
mov ecx, esi
and ecx, reloc.WSOCK32.dll_closesocket
jns 0x4960b1
dec ecx
or ecx, 0xfffffffc
add ecx, 1
je 0x4960cc
mov eax, 4
sub eax, ecx
and eax, reloc.WSOCK32.dll_closesocket
jns 0x4960c6
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 0x496116
mov dword [esp + 0x2c], 4
jmp 0x496116
mov bl, byte [esp + 0x24]
test bl, bl
je 0x4960ef
cmp byte [esp + 0x1c], bl
jne 0x496109
mov esi, dword [esp + 0x18]
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x496109
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.0049ca30
test eax, eax
je 0x496132
mov esi, 0x4b0
jmp 0x49614c
lea edx, [esp + 0x1d0]
mov ecx, str._CHAR_LPSTR_LPCSTR_UCHAR
call fcn.0049ca30
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
test edi, edi
je 0x496157
mov edi, 1
jmp 0x49616f
lea edx, [esp + 0x1d0]
mov ecx, str._FLOAT_DOUBLE_PFLOAT_PDOUBLE
call fcn.0049ca30
mov edi, eax
neg edi
sbb edi, edi
inc edi
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
je 0x49618b
test bl, bl
je 0x49618b
cmp cl, bl
je 0x49618b
mov ebx, eax
sub ebx, dword [esp + 0x3c]
jmp 0x49618d
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.0049ca30
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.00499890
test eax, eax
je 0x49678e
mov al, byte [esp + 0x24]
test al, al
je 0x4961fd
cmp byte [esp + 0x1c], al
jne 0x496627
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 0x49662b
lea eax, [esp + 0x1d0]
mov dword [esp + 0x78], 0
push 0x28
push eax
call edi
add esp, 8
test eax, eax
mov eax, dword [0x4e30fc]
je 0x49633c
mov esi, dword [eax + 0xb4]
lea eax, [esp + 0x1d0]
mov ebx, dword [esp + 0x50]
push 0
push 0x4dae10
push eax
call ebx
add esp, 8
dec eax
mov ecx, 0x4e7d50
push eax
lea eax, [esp + 0x1da]
push eax
call fcn.00439660
mov ecx, dword [0x4e30fc]
mov dword [ecx + 0xb4], eax
test eax, eax
je 0x49679d
xor ecx, ecx
movzx eax, word [esp + ecx + 0x1d2]
lea ecx, [ecx + 2]
mov word [esp + ecx + 0x866], ax
test ax, ax
jne 0x496293
lea eax, [esp + 0x868]
push 0x4dae10
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 0x4962d0
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 0x496300
sub ecx, edx
push 0
sar ecx, 1
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4e7d50
push eax
lea eax, [esp + 0x1e2]
push eax
call fcn.0043b290
mov dword [esp + 0x78], eax
mov eax, dword [0x4e30fc]
mov dword [eax + 0xb4], esi
jmp 0x49637f
cmp dword [eax + 0xb4], 0
je 0x49637f
lea ecx, [esp + 0x1d0]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x496350
sub ecx, edx
push 0
sar ecx, 1
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4e7d50
push eax
lea eax, [esp + 0x1e2]
push eax
call fcn.0043b290
mov dword [esp + 0x78], eax
cmp dword [esp + 0x78], 0
jne 0x4963c7
lea ecx, [esp + 0x1d0]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x496390
sub ecx, edx
push 0
sar ecx, 1
push 1
push 0
lea eax, [ecx - 2]
mov ecx, 0x4e7d50
push eax
lea eax, [esp + 0x1e2]
push eax
call fcn.0043b290
mov dword [esp + 0x78], eax
test eax, eax
je 0x496993
mov edi, dword [esp + 0x54]
test edi, edi
jne 0x49656c
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 0x4963e0
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 0x496412
cmp word [esp + 0x618], ax
je 0x4967cd
mov eax, dword [esp + 0x80]
cmp eax, 5
ja case.0x49641e.1
jmp dword [eax*4 + 0x496a88]
mov ecx, dword [esp + 0x78]
push 0
push 1
call fcn.00401670
jmp 0x49643f
mov eax, dword [esp + 0x78]
jmp 0x49643f
mov eax, 0x4b9c10
mov ecx, eax
call fcn.0048fd10
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 0x496464
cmp byte [esp + 0x1c], bl
jne 0x496484
mov esi, dword [esp + 0x18]
test esi, esi
je 0x496488
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x496488
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x18], esi
jmp 0x496488
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.0048ffb0
add esp, 0x10
cmp dword [esp + 0xa8], 1
jne 0x496993
test bl, bl
je 0x4964d8
mov eax, dword [esp + 0x1c]
cmp al, bl
ret
jne 0x4964f6
mov ecx, dword [esp + 0x2c]
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x4964f2
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 0x49650a
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.00499890
test eax, eax
je 0x4969aa
test edi, edi
je 0x4965f7
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 0x49662b
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.0048ffb0
add esp, 0x10
cmp dword [esp + 0xa8], 1
jne 0x496993
mov edx, dword [esp + 0x18]
mov ecx, edx
and ecx, reloc.WSOCK32.dll_closesocket
jns 0x4965bc
dec ecx
or ecx, 0xfffffffc
add ecx, 1
je 0x4965d7
mov eax, 4
sub eax, ecx
and eax, reloc.WSOCK32.dll_closesocket
jns 0x4965d1
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 0x4964fa
mov al, byte [esp + 0x24]
test al, al
je 0x496605
cmp byte [esp + 0x1c], al
jne 0x496627
test ebx, ebx
je 0x49661d
mov ecx, esi
lea eax, [ebx - 1]
sub ecx, dword [esp + 0x18]
imul ecx, eax
add esi, ecx
mov dword [esp + 0x18], esi
jmp 0x49662b
xor ecx, ecx
add esi, ecx
mov dword [esp + 0x18], esi
jmp 0x49662b
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x496668
mov ecx, dword [esp + edx*4 + 0x190]
mov eax, esi
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0x110]
jle 0x49664e
mov dword [esp + edx*4 + 0x110], eax
cmp byte [esp + edx + 0xb0], 0
jne 0x496668
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 0x4966bc
mov edx, 0x4dad34
mov ecx, edi
call fcn.00406300
test eax, eax
je 0x4966aa
push 0x7d
push edi
call ebx
add esp, 8
mov edx, 0x4dad34
mov ecx, edi
mov esi, eax
call fcn.00406300
cmp esi, eax
mov esi, dword [esp + 0x18]
jae 0x4966bc
push 0x4ce418
push edi
call dword [esp + 0x58]
add esp, 8
lea edi, [edi + eax*2]
jmp 0x496712
mov edx, 0x4dad34
mov ecx, edi
call fcn.00406300
test eax, eax
je 0x4966e1
push 0x4dad34
push edi
call dword [esp + 0x58]
add esp, 8
lea edi, [edi + eax*2]
add edi, 2
jmp 0x496712
cmp word [esp + 0x618], 0
jne 0x4966f4
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 0x496700
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 0x4969c8
mov ecx, dword [esp + 0x70]
jmp 0x495635
mov ecx, dword [esp + 0x28]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push edi
push str.Invalid_structure_definition.
mov ecx, 0x4e7d50
call fcn.00447cc0
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, 0x4e7d50
push eax
push 0x4dadb8
call fcn.00447cc0
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 0x496738
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, 0x4e7d50
push eax
push str.Variable_was_not_found_in_function.
call fcn.00447cc0
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 0x496841
mov ecx, dword [esp + 0x40]
call fcn.0046dea0
test eax, eax
je 0x49682c
mov ecx, dword [esp + 0x40]
push 0
call fcn.0046dea0
mov ecx, eax
call fcn.00496ee0
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.00405c10
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.00495360
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x60]
jle 0x49687b
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 0x496905
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.0046dea0
test eax, eax
je 0x4968f0
mov ecx, dword [esp + 0x40]
push 0
call fcn.0046dea0
mov ecx, eax
call fcn.00496ee0
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.0046dea0
push eax
mov ecx, esi
call fcn.00496aa0
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, 3
lea ecx, [esp + 0x40]
call fcn.00495360
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x40]
call fcn.0046dea0
test eax, eax
je 0x49697e
mov ecx, dword [esp + 0x40]
push 0
call fcn.0046dea0
mov ecx, eax
call fcn.00496ee0
mov ecx, dword [ebx + 4]
mov esi, eax
call fcn.0046dea0
test eax, eax
je 0x49696d
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.00405c10
mov ecx, dword [ebx + 4]
add esp, 4
call fcn.0046dea0
push eax
mov ecx, esi
call fcn.00496aa0
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.00495360
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 0x496738
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 0x4969c8
mov edi, 0x4b9c10
mov ecx, dword [esp + 0x2c]
test ecx, ecx
je 0x4969e2
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x4969e2
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
test esi, esi
je 0x49672d
cmp dword [esp + 0x64], 1
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x60]
mov dword [ebx + 0x1c], esi
jle 0x496a1e
mov ecx, dword [edi + 4]
call fcn.0046da80
test eax, eax
je 0x496a1e
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.0046db90
mov dword [ebx + 0x14], eax
mov dword [ebx + 0x2c], 0
jmp 0x496a3b
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.00405c10
add esp, 4
mov esi, dword [esp + 0x64]
cmp esi, 1
jle 0x496a50
mov ecx, dword [edi + 4]
call fcn.0046da80
test eax, eax
je 0x496a55
cmp esi, 2
jle 0x496a66
mov ecx, dword [edi + esi*4 - 4]
call fcn.0046dea0
push eax
mov ecx, ebx
call fcn.00496aa0
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret