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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x8d34
call fcn.004b79a0
push ebx
push esi
push edi
xor edi, edi
lea eax, [esp + 0x1f0]
push 0x40
mov ebx, edx
mov dword [esp + 0x1c], edi
mov esi, ecx
mov dword [esp + 0x70], ebx
push edi
push eax
mov dword [esp + 0x60], esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x170]
push 0x40
push edi
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [esp + 0x1b0]
xorps xmm0, xmm0
movaps xmmword [esp + 0x130], xmm0
push 0x40
push edi
push eax
call sub.VCRUNTIME140.dll_memset
movq xmm0, qword [str._UInt]
lea eax, [esp + 0x64]
mov dword [esp + 0xb8], eax
add esp, 0xc
lea eax, [esp + 0xf0]
mov dword [esp + 0x48], edi
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x98]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x120]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0xc0]
mov dword [esp + 0xbc], eax
lea eax, [esp + 0x100]
mov dword [esp + 0x78], eax
lea eax, [esp + 0x110]
mov dword [esp + 0x7c], eax
mov eax, dword [0x4db1f4]
mov dword [esp + 0x4b0], eax
mov ax, word [0x4db1f8]
push 0x436
mov word [esp + 0x4b8], ax
lea eax, [esp + 0x4ba]
push edi
push eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x6c], 4
mov dword [esp + 0x104], 1
mov dword [esp + 0xac], 1
mov dword [esp + 0x134], 6
mov dword [esp + 0xd4], 1
movq qword [esp + 0x4b4], xmm0
call sub.VCRUNTIME140.dll_memset
xor cl, cl
mov dword [esp + 0x80], edi
add esp, 0xc
mov byte [esp + 0x13], cl
mov byte [esp + 0x20], cl
cmp ebx, 3
jle 0x4952ab
mov eax, dword [esi + 0xc]
mov ebx, dword [eax]
mov dword [esp + 0x1c], ebx
jmp 0x4953ea
mov ecx, dword [esi]
call fcn.0046d750
test eax, eax
je 0x4952d3
push 0x4b9c40
push str.Invalid_structure_definition.
mov ecx, 0x4e7b70
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x28
call fcn.004b6a89
add esp, 4
mov dword [esp + 0x70], eax
mov ecx, eax
call fcn.00494fc0
push 0
push 0
mov ebx, eax
push 0
mov dword [esp + 0x28], ebx
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov dword [ebx + 0x20], eax
mov byte [ebx + 0x14], 1
test eax, eax
je 0x496d3b
push 1
push esi
lea eax, [esp + 0x88]
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0048fb80
add esp, 0x10
cmp dword [esp + 0x88], 1
je 0x49537e
mov eax, dword [esi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x496c0d.1
jmp dword [ecx*4 + 0x496d84]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401640
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4e7b70
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4b9c40
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4e7b70
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x20
call fcn.004b6a89
add esp, 4
mov dword [esp + 0x70], eax
cmp dword [esp + 0x6c], 1
mov dword [eax + 4], 1
mov dword [eax], vtable.Object.0
mov dword [eax + 8], edi
mov dword [eax + 0xc], edi
mov dword [eax + 0x10], edi
mov dword [eax + 0x14], edi
mov dword [eax + 0x18], edi
mov dword [eax + 0x1c], edi
mov dword [ebx + 0x1c], eax
mov eax, dword [esp + 0x80]
mov dword [ebx + 0x18], eax
jle 0x4953d9
mov ecx, dword [esi + 4]
xor edx, edx
call fcn.0046d440
or eax, edx
je 0x4953d9
mov ecx, dword [esi + 4]
xor edx, edx
call fcn.0046d440
jmp 0x4953e7
push dword [ebx + 0x18]
push 8
push dword [ebx + 0x20]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebx + 0x24], eax
mov dword [esp + 0x108], edi
mov dword [esp + 0x118], 6
mov dword [esp + 0xe8], 6
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0xe0], eax
mov eax, dword [esi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x49541b.1
jmp dword [ecx*4 + 0x496d9c]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401640
mov esi, eax
mov dword [esp + 0x14], eax
jmp 0x495442
mov esi, dword [eax]
jmp 0x49543e
mov esi, 0x4b9c40
mov dword [esp + 0x14], esi
mov ecx, esi
call fcn.00404c80
test al, al
je 0x49545d
push 0x10
push 0
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstol]
add esp, 0xc
jmp 0x495467
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
lea edx, [esp + 0x230]
mov dword [esp + 0x34], eax
mov ecx, eax
call fcn.00413110
lea edx, [eax + 2]
nop dword [eax]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x495480
sub eax, edx
sar eax, 1
cmp word [esi + eax*2], 0x3a
jne 0x4954d4
cmp dword [esp + 0x34], edi
jle 0x4954d4
lea ecx, [esp + 0x230]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4954a6
mov eax, dword [esp + 0x34]
sub ecx, edx
sar ecx, 1
cdq
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
lea esi, [esi + ecx*2]
add esi, 2
mov dword [esp + 0x14], esi
jmp 0x49550e
cmp dword [esp + 0x6c], 5
jne 0x4954fe
mov eax, dword [esp + 0x54]
xor edx, edx
mov ecx, dword [eax + 0x10]
call fcn.0046d440
mov dword [esp + 0x34], eax
cdq
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
jmp 0x49550e
xorps xmm0, xmm0
mov dword [esp + 0x34], edi
movlpd qword [esp + 0xc0], xmm0
cmp word [esi], di
je 0x496bd7
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscspn]
mov edx, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
mov dword [esp + 0x4c], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
mov dword [esp + 0x50], eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
mov dword [esp + 0x94], eax
mov eax, dword [sym.imp.VCRUNTIME140.dll_wcschr]
mov dword [esp + 0x30], eax
mov eax, dword [sym.imp.VCRUNTIME140.dll_wcsstr]
mov dword [esp + 0x70], edx
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov ebx, eax
push 2
push 0x4db1fc
push esi
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x44], ecx
call edx
add esp, 0xc
test eax, eax
jne 0x4955f0
mov eax, dword [esp + 0x14]
movzx edi, word [eax]
test di, di
je 0x4955c1
mov eax, edi
nop dword [eax]
movzx edx, ax
mov ecx, 0x4da344
mov eax, 0xa
nop dword [eax]
cmp dx, ax
je 0x495641
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4955a0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495590
mov esi, dword [esp + 0x14]
mov ecx, esi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4955d0
sub ecx, edx
sar ecx, 1
lea esi, [esi + ecx*2]
mov dword [esp + 0x14], esi
cmp word [esi], 0
je 0x496bcf
mov eax, dword [esp + 0x14]
mov edi, esi
movzx eax, word [eax]
test ax, ax
je 0x49562d
nop
movzx edx, ax
mov ecx, str._n_r_t
mov eax, 0xa
nop dword [eax]
cmp dx, ax
je 0x49562f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495610
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495600
xor esi, esi
cmp dword [esp + 0x14], esi
mov esi, dword [esp + 0x14]
jne 0x495688
add esi, 2
jmp 0x496a55
mov esi, dword [esp + 0x14]
mov eax, edi
mov dword [esp + 0x14], esi
nop dword [eax + eax]
movzx edx, ax
mov ecx, 0x4da344
mov eax, 0xa
nop dword [eax]
cmp dx, ax
je 0x4955e6
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495660
movzx eax, word [esi + 2]
add esi, 2
mov dword [esp + 0x14], esi
test ax, ax
jne 0x495650
xor esi, esi
jmp 0x4955e2
push 0x7b
push esi
call dword [esp + 0x38]
add esp, 8
test eax, eax
je 0x4957b9
mov edx, 0x4db1dc
mov ecx, esi
call fcn.00406570
test eax, eax
je 0x4956d0
push 0x7b
push esi
call dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edx, 0x4db1dc
mov esi, eax
call fcn.00406570
cmp esi, eax
mov esi, dword [esp + 0x14]
jae 0x4957b9
inc dword [esp + 0x44]
xor eax, eax
mov edi, dword [esp + 0x90]
test ebx, ebx
push str.struct
cmovne eax, dword [esp + 0x3c]
push esi
mov dword [esp + 0x50], eax
call edi
add esp, 8
test eax, eax
je 0x495717
push str.struct
push esi
call edi
mov edi, dword [esp + 0x1c]
mov esi, eax
push 0x7b
push edi
call dword [esp + 0x40]
add esp, 0x10
cmp esi, eax
jae 0x49571b
mov al, 1
jmp 0x49571d
mov edi, dword [esp + 0x14]
xor al, al
mov esi, dword [esp + 0x34]
mov byte [esp + ebx + 0x131], al
test esi, esi
jle 0x49573e
mov ecx, edi
call fcn.0048f8b0
movzx eax, al
cmp eax, esi
jle 0x49573e
mov ecx, esi
jmp 0x495748
mov ecx, edi
call fcn.0048f8b0
movzx ecx, al
mov ebx, dword [esp + 0x18]
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x495762
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x24]
cmp eax, ecx
jle 0x495776
test esi, esi
jle 0x495774
mov ecx, esi
cmp eax, esi
jg 0x495776
mov ecx, eax
mov eax, dword [esp + 0x2c]
push 0x7b
push edi
mov edi, dword [esp + 0x38]
mov dword [esp + eax*4 + 0x1fc], ebx
xor bl, bl
mov dword [esp + eax*4 + 0x1bc], ecx
mov dword [esp + 0x2c], 0
mov dword [esp + eax*4 + 0x17c], 0
mov byte [esp + 0x1b], bl
mov byte [esp + 0x28], bl
call edi
add esp, 8
lea esi, [eax + 2]
jmp 0x496a55
cmp word [esi], 0x7d
jne 0x495889
mov edx, dword [esp + 0x44]
mov ebx, dword [esp + 0x18]
mov eax, ebx
mov ecx, dword [esp + edx*4 + 0x1f0]
sub eax, ecx
mov esi, dword [esp + edx*4 + 0x170]
cmp eax, esi
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x14]
jle 0x4957f4
mov dword [esp + 0x48], eax
mov dword [esp + edx*4 + 0x170], eax
cmp edx, 1
jle 0x49581e
cmp byte [esp + edx + 0x12f], 0
je 0x49581e
mov ecx, dword [esp + edx*4 + 0x1b0]
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x495820
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
jmp 0x495820
mov ebx, ecx
mov eax, dword [esp + 0x24]
mov edx, ebx
mov ebx, dword [esp + 0x44]
mov ecx, dword [esp + ebx*4 + 0x1b0]
cmp ecx, eax
cmovg eax, ecx
mov ecx, dword [esp + 0x48]
cmp ecx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
cmovle ecx, dword [esp + 0x28]
sub ebx, 1
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ecx
lea ebx, [edx + ecx]
cmovne ebx, edx
xor cl, cl
add esi, 2
mov byte [esp + 0x13], cl
mov byte [esp + 0x20], cl
mov edx, 0x4db1dc
mov ecx, esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], esi
call fcn.00406570
cmp esi, eax
jne 0x496a59
lea esi, [edi + 4]
jmp 0x496a55
mov edx, 0x4db220
mov dword [esp + 0x28], 0
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.00406570
test eax, eax
je 0x4958e7
mov edi, dword [esp + 0x4c]
push 0x4db220
push esi
call edi
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x496a6c
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0xd38]
push esi
push ebx
push eax
call dword [esp + 0x5c]
add esp, 0xc
xor eax, eax
mov word [esp + esi*2 + 0xd38], ax
jmp 0x495938
mov ecx, esi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4958f0
sub ecx, edx
sar ecx, 1
cmp ecx, 0x4000
ja 0x496bac
lea edx, [esp + 0xd38]
mov ecx, esi
sub edx, esi
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x495920
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x4c]
or edx, 0xffffffff
lea ecx, [esp + 0xd38]
call fcn.00427740
mov esi, dword [esp + 0x30]
lea eax, [esp + 0xd38]
push 0x2a
push eax
call esi
add esp, 8
test eax, eax
je 0x49599d
lea eax, [esp + 0xd38]
push 0x3a
push eax
call esi
add esp, 8
test eax, eax
jne 0x496a92
push eax
push eax
push 0x4001
push 0xffffffffffffffff
push 1
push 0x4b9c40
mov edx, 0x4d2f6c
lea ecx, [esp + 0xd50]
call fcn.0049ce30
add esp, 0x18
mov dword [esp + 0x28], eax
lea eax, [esp + 0xd38]
push 0x5b
push eax
call esi
add esp, 8
test eax, eax
je 0x495a49
push 0x14
lea eax, [esp + 0xd3c]
push 0x5b
push eax
call esi
add esp, 8
push eax
lea eax, [esp + 0x148]
push eax
call dword [esp + 0x5c]
add esp, 0xc
lea eax, [esp + 0x140]
push 0x4db264
push eax
call edi
xor ecx, ecx
mov word [esp + eax*2 + 0x14a], cx
lea ecx, [esp + 0x14a]
call fcn.00404ce0
push 0
push 0
push 0x4001
push 1
push 1
push 0x4b9c40
lea edx, [esp + 0x160]
mov dword [esp + 0x4c], eax
lea ecx, [esp + 0xd58]
call fcn.0049ce30
lea eax, [esp + 0xd58]
push 0x5b
push eax
call esi
add esp, 0x28
test eax, eax
jne 0x496abc
or edx, 0xffffffff
lea ecx, [esp + 0xd38]
call fcn.00427740
mov di, word [esp + 0xd38]
lea esi, [esp + 0xd38]
test di, di
je 0x495acd
movzx eax, di
movzx edx, ax
mov ecx, 0x4d05d4
mov eax, 0x20
nop dword [eax]
cmp dx, ax
je 0x495aeb
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495a70
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495a60
lea esi, [esp + 0xd38]
movzx eax, di
nop word [eax + eax]
movzx edx, ax
mov ecx, 0x4db220
mov eax, 0x7d
nop dword [eax]
cmp dx, ax
je 0x495aeb
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495ab0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495aa0
mov edx, 0x4db220
mov ecx, ebx
call fcn.00406570
test eax, eax
jne 0x495d25
cmp dword [esp + 0x18], eax
jne 0x495d25
lea eax, [esp + 0xd38]
push 0x4d3918
push eax
call dword [esp + 0x54]
mov esi, eax
add esp, 8
cmp esi, 0x218
ja 0x496abc
lea ecx, [esp + 0xd38]
movzx edx, word [ecx]
cmp edx, 0x20
je 0x495b21
cmp edx, 9
jne 0x495b26
add ecx, 2
jmp 0x495b14
mov edx, 0x4d05d4
call fcn.00406570
mov ebx, eax
test ebx, ebx
je 0x495b3c
cmp word [ebx], 0x3a
je 0x495ba4
lea ecx, [esp + 0x4a8]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495b46
sub ecx, edx
sar ecx, 1
lea eax, [ecx - 2]
push eax
lea eax, [esp + 0xd3c]
push eax
lea eax, [esp + 0x4b2]
push eax
call dword [esp + 0xa0]
add esp, 0xc
test eax, eax
je 0x495b81
xor cl, cl
mov byte [esp + 0x13], cl
mov byte [esp + 0x20], cl
push esi
lea eax, [esp + 0xd3c]
push eax
lea eax, [esp + 0x4b2]
push eax
call dword [esp + 0x5c]
add esp, 0xc
mov dword [esp + esi*2 + 0x4aa], 0x20
mov di, word [esp + 0xd38]
lea esi, [esp + 0xd38]
mov eax, dword [esp + 0x20]
mov byte [esp + 0x3f], al
test di, di
je 0x495bed
movzx eax, di
movzx edx, ax
mov ecx, 0x4db4c4
mov eax, 0x20
cmp dx, ax
je 0x495bfc
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495bd0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495bc3
xor eax, eax
mov word [esp + 0x258], ax
jmp 0x495dca
lea edx, [esp + 0xd38]
movzx eax, di
nop word [eax + eax]
movzx esi, ax
mov ecx, 0x4db4c4
mov eax, 0x20
nop dword [eax]
cmp si, ax
je 0x495c3f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495c20
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
jne 0x495c10
xor edx, edx
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x495c42
sub edx, ecx
sar edx, 1
cmp edx, 0x11b
ja 0x496abc
test ebx, ebx
je 0x495c70
cmp word [ebx], 0x3a
jne 0x495c70
lea edx, [esp + 0xd38]
jmp 0x495caf
lea edx, [esp + 0xd38]
movzx eax, di
nop word [eax + eax]
movzx esi, ax
mov ecx, 0x4db4c4
mov eax, 0x20
nop dword [eax]
cmp si, ax
je 0x495caf
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495c90
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
jne 0x495c80
xor edx, edx
lea ecx, [esp + 0x258]
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
add ecx, 2
test ax, ax
jne 0x495cb6
lea eax, [esp + 0x258]
push 0x3a
push eax
call dword [esp + 0x38]
add esp, 8
test eax, eax
je 0x495d13
xor ecx, ecx
mov word [eax], cx
lea ecx, [eax + 2]
call fcn.004180f0
mov ecx, dword [esp + 0x20]
xor ebx, ebx
movzx edx, cl
movzx ecx, byte [esp + 0x3f]
shr edx, 3
cmp edx, dword [esp + 0x40]
mov byte [esp + 0x13], al
cmovne ebx, ecx
add bl, al
or edx, 0xffffffff
mov dword [esp + 0x20], ebx
jmp 0x495db0
xor cl, cl
or edx, 0xffffffff
mov byte [esp + 0x13], cl
mov byte [esp + 0x20], cl
jmp 0x495db0
lea ecx, [esp + 0xd38]
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495d30
sub ecx, edx
sar ecx, 1
cmp ecx, 0x125
ja 0x496abc
push 0x125
lea eax, [esp + 0xd3c]
push eax
lea eax, [esp + 0x260]
push eax
call dword [esp + 0x5c]
add esp, 0xc
lea eax, [esp + 0x258]
push 0x3a
push eax
call dword [esp + 0x38]
add esp, 8
test eax, eax
je 0x495dab
xor ecx, ecx
mov word [eax], cx
lea ecx, [eax + 2]
call fcn.004180f0
mov bl, al
xor edx, edx
mov eax, dword [esp + 0x20]
movzx ecx, al
shr ecx, 3
cmp ecx, dword [esp + 0x40]
movzx eax, al
cmovne edx, eax
mov byte [esp + 0x13], bl
add dl, bl
mov byte [esp + 0x20], dl
mov edx, 0xffffffff
lea ecx, [esp + 0x258]
call fcn.004276d0
mov edx, eax
lea ecx, [esp + 0x258]
call fcn.00427740
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x2c]
cmp byte [esi + 0x14], 0
je 0x495df1
cmp word [esp + 0x258], 0
jne 0x495df1
test edi, edi
mov eax, 1
cmove edi, eax
mov dword [esp + 0x2c], edi
mov ebx, dword [esp + 0x30]
lea eax, [esp + 0x258]
push 0x28
push eax
call ebx
add esp, 8
test eax, eax
jne 0x496b86
mov ecx, str._bool
lea eax, [esp + 0x4a8]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x495e3e
test dx, dx
je 0x495e3a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x495e3e
add eax, 4
add ecx, 4
test dx, dx
jne 0x495e18
xor eax, eax
jmp 0x495e43
sbb eax, eax
or eax, 1
test eax, eax
jne 0x495e52
mov esi, 1
mov dword [esp + 0x40], esi
jmp 0x495e94
xor esi, esi
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [esi*4 + 0x4db968]
lea edx, [esp + 0x4a8]
call fcn.0049ca40
test eax, eax
jne 0x495e7f
inc esi
cmp esi, 8
jl 0x495e60
jmp 0x495e85
lea eax, [esi + 1]
movzx eax, ax
movsx esi, ax
mov dword [esp + 0x40], esi
test esi, esi
je 0x496316
mov eax, dword [esp + 0x28]
test eax, eax
je 0x495f09
mov ebx, dword [esp + 0x18]
mov ecx, ebx
and ecx, reloc.WSOCK32.dll_closesocket
jns 0x495eb1
dec ecx
or ecx, 0xfffffffc
add ecx, 1
je 0x495ed0
mov eax, 4
sub eax, ecx
and eax, reloc.WSOCK32.dll_closesocket
jns 0x495ec6
dec eax
or eax, 0xfffffffc
inc eax
add ebx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x24], 4
jge 0x495ee8
mov ebx, dword [esp + 0x34]
test ebx, ebx
jle 0x495eff
cmp ebx, 4
jge 0x495eff
mov dword [esp + 0x24], ebx
mov cl, byte [esp + 0x13]
xor edx, edx
mov dword [esp + 0x38], edx
test eax, eax
jne 0x495f67
test edi, edi
jne 0x495f67
movzx ebx, cl
jmp 0x495f71
mov dword [esp + 0x24], 4
jmp 0x495ee8
mov cl, byte [esp + 0x13]
test cl, cl
je 0x495f19
mov edx, dword [esp + 0x20]
cmp dl, cl
jne 0x495f3b
mov ebx, dword [esp + 0x18]
mov eax, ebx
cdq
idiv esi
test edx, edx
je 0x495f33
mov eax, esi
sub eax, edx
cdq
idiv esi
add ebx, edx
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
cmp esi, dword [esp + 0x24]
jle 0x495f55
mov ebx, dword [esp + 0x34]
test ebx, ebx
jle 0x495f51
mov dword [esp + 0x24], ebx
cmp esi, ebx
jg 0x495f55
mov dword [esp + 0x24], esi
test edi, edi
jne 0x495eec
movzx ebx, cl
movzx edx, dl
sub edx, ebx
mov dword [esp + 0x38], edx
jmp 0x495f71
xor ebx, ebx
test eax, eax
jne 0x495fc5
test edi, edi
jne 0x495fc5
lea edx, [esp + 0x4a8]
mov ecx, str._TCHAR_LPTSTR_LPCTSTR
call fcn.0049ca40
test eax, eax
je 0x495f8d
mov esi, 0x4b0
jmp 0x495fd0
lea edx, [esp + 0x4a8]
mov ecx, str._LPWSTR_LPCWSTR_WCHAR
call fcn.0049ca40
test eax, eax
je 0x495fa9
mov esi, 0x4b0
jmp 0x495fd0
lea edx, [esp + 0x4a8]
mov ecx, str._CHAR_LPSTR_LPCSTR_UCHAR
call fcn.0049ca40
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
jmp 0x495fd0
or esi, 0xffffffff
test eax, eax
jne 0x495fea
test edi, edi
jne 0x495fea
lea edx, [esp + 0x4a8]
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
call fcn.0049ca40
mov edi, eax
neg edi
sbb edi, edi
inc edi
jmp 0x495ff6
xor edi, edi
test eax, eax
jne 0x496012
cmp dword [esp + 0x2c], edx
jne 0x496012
lea edx, [esp + 0x4a8]
mov ecx, str._FLOAT_DOUBLE_PFLOAT_PDOUBLE
call fcn.0049ca40
mov edx, dword [esp + 0x38]
neg eax
sbb eax, eax
inc eax
jmp 0x496014
xor eax, eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x496038
mov cl, byte [esp + 0x13]
test cl, cl
je 0x496034
cmp byte [esp + 0x20], cl
mov ecx, dword [esp + 0x18]
je 0x496038
sub ecx, dword [esp + 0x40]
jmp 0x496038
mov ecx, dword [esp + 0x18]
push edx
push ebx
push esi
mov esi, dword [esp + 0x38]
push edi
mov edi, dword [esp + 0x2c]
push eax
push dword [esp + 0x54]
lea eax, [esp + 0x8c]
push esi
push ecx
push dword [esp + 0x48]
mov ecx, edi
push eax
lea eax, [esp + 0x280]
push eax
call fcn.00497050
mov ebx, eax
test ebx, ebx
je 0x496ae6
mov edx, dword [esp + 0x28]
test esi, esi
jne 0x496080
test edx, edx
je 0x4962da
xor ecx, ecx
movzx eax, word [esp + ecx + 0x4a8]
lea ecx, [ecx + 2]
mov word [esp + ecx + 0x8ee], ax
test ax, ax
jne 0x496082
mov di, word [esp + 0x258]
test edx, edx
je 0x49611b
test esi, esi
jne 0x4960b8
test di, di
jne 0x4960b8
lea eax, [esi + 1]
jmp 0x4960ba
xor eax, eax
mov esi, edx
sub esi, eax
je 0x496117
lea ecx, [esp + 0x8f0]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4960d0
sub ecx, edx
sar ecx, 1
je 0x496105
nop dword [eax]
nop word [eax + eax]
mov ax, word [esp + ecx*2 + 0x8f0]
mov word [esp + ecx*2 + 0x8f2], ax
sub ecx, 1
jne 0x4960f0
mov eax, 0x2a
mov word [esp + 0x8f2], ax
sub esi, 1
jne 0x4960c0
mov esi, dword [esp + 0x2c]
test di, di
je 0x496170
test esi, esi
je 0x496170
lea edx, [esp + 0x8f0]
lea ecx, [edx + 2]
nop
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x496130
sub edx, ecx
lea ecx, [esp + 0x140]
sar edx, 1
lea eax, [edx + edx]
mov edx, ecx
sub eax, edx
lea edx, [esp + 0x8f0]
add edx, eax
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x496160
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x8f0]
push 1
lea edx, [esp + 0x7c]
mov dword [esp + 0x104], eax
push edx
mov ecx, dword [edi + 0x1c]
lea edx, [esp + 0xe8]
push 0
push edx
lea edx, [esp + 0xe0]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x1c]
cmp eax, 1
jne 0x4961b8
mov eax, dword [esp + 0xd0]
mov dword [ebx + 0x14], eax
jmp 0x4962d6
push 0x28
call fcn.004b6a89
add esp, 4
mov dword [esp + 0x38], eax
mov ecx, eax
call fcn.00494fc0
mov dword [ebx + 0x14], eax
test eax, eax
je 0x496af5
push 2
lea edx, [esp + 0x7c]
mov dword [esp + 0x114], eax
mov eax, dword [edi + 0x1c]
push edx
push 1
lea edx, [esp + 0xec]
mov ecx, dword [eax]
push edx
lea edx, [esp + 0xe0]
push edx
push eax
call dword [ecx + 0x1c]
mov eax, dword [esp + 0xd0]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [ebx + 0x14]
mov eax, dword [edi + 0x1c]
mov dword [ecx + 0x1c], eax
mov eax, dword [edi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov ecx, dword [ebx + 0x14]
mov eax, dword [edi + 0x20]
mov dword [ecx + 0x20], eax
cmp word [esp + 0x258], 0
je 0x49624c
test esi, esi
je 0x49624c
cmp dword [esp + 0x28], 0
mov ecx, 4
jne 0x496247
mov ecx, dword [ebx + 8]
imul ecx, esi
jmp 0x496269
lea eax, [esp + 0x8f0]
push 0x2a
push eax
call dword [esp + 0x38]
add esp, 8
mov ecx, 4
test eax, eax
jne 0x496269
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
mov edx, 5
mov dword [eax + 0x18], ecx
lea eax, [esp + 0x8f0]
mov dword [esp + 0x60], 0
lea ecx, [esp + 0xac]
mov dword [esp + 0x58], eax
mov dword [esp + 0xa0], 3
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x120], eax
call fcn.00495140
test eax, eax
je 0x496ae6
mov eax, dword [edi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebx + 0x14]
mov dword [eax + 0x1c], 0
mov dword [esp + 0x60], 4
mov dword [esp + 0xa0], 1
mov edx, dword [esp + 0x28]
mov bl, byte [esp + 0x13]
test bl, bl
je 0x4962ec
cmp byte [esp + 0x20], bl
jne 0x496983
mov ecx, dword [esp + 0x40]
test edx, edx
mov ebx, dword [esp + 0x18]
mov eax, 4
cmovne ecx, eax
test esi, esi
mov eax, 1
cmovne eax, esi
imul ecx, eax
add ebx, ecx
mov dword [esp + 0x18], ebx
jmp 0x496987
lea eax, [esp + 0x4a8]
mov dword [esp + 0x58], 0
push 0x28
push eax
call ebx
add esp, 8
test eax, eax
mov eax, dword [0x4e30f4]
je 0x496464
mov edi, dword [eax + 0xb4]
lea eax, [esp + 0x4a8]
mov ebx, dword [esp + 0x4c]
push 0
push 0x4db2c0
push eax
call ebx
add esp, 8
dec eax
mov ecx, 0x4e7b70
push eax
lea eax, [esp + 0x4b2]
push eax
call fcn.00439000
mov ecx, dword [0x4e30f4]
mov dword [ecx + 0xb4], eax
test eax, eax
je 0x496b05
lea esi, [esp + 0x4a8]
lea ecx, [esi + 2]
nop word [eax + eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x496390
push 0
push 2
push 0
lea eax, [esp + 0x4b4]
sub esi, ecx
push 0x4db2c0
push eax
sar esi, 1
call ebx
add esp, 8
sub esi, eax
sub esi, 3
lea eax, [esp + 0x4b4]
push esi
push 0x4db2c0
push eax
call ebx
add esp, 8
lea ecx, [esp + 0x4ba]
lea eax, [ecx + eax*2]
mov ecx, 0x4e7b70
push eax
call fcn.0043ac50
mov dword [esp + 0x58], eax
mov eax, dword [0x4e30f4]
mov dword [eax + 0xb4], edi
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x49643c
lea ecx, [esp + 0x4a8]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x496405
sub ecx, edx
push 0
sar ecx, 1
push 1
push 0
lea eax, [ecx - 2]
mov ecx, 0x4e7b70
push eax
lea eax, [esp + 0x4ba]
push eax
call fcn.0043ac50
mov dword [esp + 0x58], eax
test eax, eax
je 0x496b35
mov edi, dword [esp + 0x28]
test edi, edi
jne 0x4965c0
mov ebx, dword [esp + 0x34]
test ebx, ebx
jle 0x4964d3
mov ecx, dword [esp + 0x60]
cmp ecx, 5
ja case.0x49645d.1
jmp dword [ecx*4 + 0x496db4]
cmp dword [eax + 0xb4], 0
je 0x4963f3
lea ecx, [esp + 0x4a8]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x496477
sub ecx, edx
push 0
sar ecx, 1
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4e7b70
push eax
lea eax, [esp + 0x4ba]
push eax
call fcn.0043ac50
mov dword [esp + 0x58], eax
jmp 0x4963f7
push 0
push 1
mov ecx, eax
call fcn.00401640
jmp case.0x49645d.0
mov eax, 0x4b9c40
mov ecx, eax
call fcn.0048f8b0
movzx eax, al
cmp eax, ebx
jle 0x4964cf
mov eax, ebx
jmp 0x4964ff
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
cmp ecx, 5
ja case.0x4964dc.1
jmp dword [ecx*4 + 0x496dcc]
push 0
push 1
mov ecx, eax
call fcn.00401640
jmp case.0x4964dc.0
mov eax, 0x4b9c40
mov ecx, eax
call fcn.0048f8b0
movzx eax, al
mov ecx, dword [esp + 0x24]
cmp eax, ecx
mov bl, byte [esp + 0x13]
cmovg ecx, eax
mov dword [esp + 0x24], ecx
test bl, bl
je 0x49651a
cmp byte [esp + 0x20], bl
jne 0x49653a
mov esi, dword [esp + 0x18]
test esi, esi
je 0x49653e
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x49653e
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x18], esi
jmp 0x49653e
mov esi, dword [esp + 0x18]
mov eax, esi
cdq
mov dword [esp + 0xf0], eax
lea eax, [esp + 0x24]
mov dword [esp + 0xf4], edx
cdq
mov dword [esp + 0x98], eax
lea eax, [esp + 0xac]
push 3
push eax
lea eax, [esp + 0x88]
mov dword [esp + 0xa4], edx
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0048fb80
add esp, 0x10
cmp dword [esp + 0x88], 1
jne 0x496b35
test bl, bl
je 0x49659d
cmp byte [esp + 0x20], bl
jne 0x49664a
mov ecx, dword [esp + 0x24]
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x49664a
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x18], esi
jmp 0x49664a
push 1
lea eax, [esp + 0xb0]
xorps xmm0, xmm0
push eax
lea eax, [esp + 0x88]
movlpd qword [esp + 0xf8], xmm0
push eax
lea eax, [esp + 0x44]
push eax
call fcn.0048fb80
add esp, 0x10
cmp dword [esp + 0x88], 1
jne 0x496b35
mov esi, dword [esp + 0x18]
mov ecx, esi
and ecx, reloc.WSOCK32.dll_closesocket
jns 0x49660e
dec ecx
or ecx, 0xfffffffc
add ecx, 1
je 0x496629
mov eax, 4
sub eax, ecx
and eax, reloc.WSOCK32.dll_closesocket
jns 0x496623
dec eax
or eax, 0xfffffffc
inc eax
add esi, eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x496638
mov ecx, eax
cmp eax, 4
jl 0x49663d
mov ecx, 4
mov eax, dword [esp + 0x24]
cmp ecx, eax
cmovg eax, ecx
mov dword [esp + 0x24], eax
push 0
push 0
xor eax, eax
mov ecx, esi
mov esi, dword [esp + 0x88]
test edi, edi
push 0xffff
push 0
cmovne ecx, eax
mov eax, esi
push 0
sub eax, ecx
mov ecx, dword [esp + 0x30]
push eax
push dword [esp + 0x44]
lea eax, [esp + 0x90]
push dword [esp + 0x34]
push edi
push eax
lea eax, [esp + 0x280]
push eax
call fcn.00497050
mov ebx, eax
test ebx, ebx
je 0x496b5f
xor edx, edx
nop word [eax + eax]
movzx ecx, word [esp + edx + 0x4a8]
lea edx, [edx + 2]
mov word [esp + edx + 0x8ee], cx
test cx, cx
jne 0x4966a0
test edi, edi
mov di, word [esp + 0x258]
je 0x49674e
cmp dword [esp + 0x2c], 0
jne 0x4966db
test di, di
jne 0x4966db
mov eax, 1
jmp 0x4966dd
xor eax, eax
mov esi, dword [esp + 0x28]
sub esi, eax
je 0x496747
nop word [eax + eax]
lea ecx, [esp + 0x8f0]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x496700
sub ecx, edx
sar ecx, 1
je 0x496735
nop dword [eax]
nop word [eax + eax]
mov ax, word [esp + ecx*2 + 0x8f0]
mov word [esp + ecx*2 + 0x8f2], ax
sub ecx, 1
jne 0x496720
mov eax, 0x2a
mov word [esp + 0x8f2], ax
sub esi, 1
jne 0x4966f0
mov esi, dword [esp + 0x80]
test di, di
mov edi, dword [esp + 0x2c]
je 0x4967a0
test edi, edi
je 0x4967a0
lea edx, [esp + 0x8f0]
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x496765
sub edx, ecx
lea ecx, [esp + 0x140]
sar edx, 1
lea eax, [edx + edx]
mov edx, ecx
sub eax, edx
lea edx, [esp + 0x8f0]
add edx, eax
nop dword [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x496790
lea eax, [esp + 0x8f0]
mov dword [esp + 0x100], eax
lea edx, [esp + 0x78]
mov eax, dword [esp + 0x1c]
push 1
push edx
push 0
mov ecx, dword [eax + 0x1c]
lea edx, [esp + 0xec]
push edx
lea edx, [esp + 0xe0]
push edx
mov eax, dword [ecx]
push ecx
call dword [eax + 0x1c]
cmp eax, 1
jne 0x4967e8
mov eax, dword [esp + 0xd0]
mov dword [ebx + 0x14], eax
jmp 0x496933
push 0x28
call fcn.004b6a89
add esp, 4
mov dword [esp + 0x38], eax
mov ecx, eax
call fcn.00494fc0
mov dword [ebx + 0x14], eax
test eax, eax
je 0x496b72
mov dword [esp + 0x110], eax
lea edx, [esp + 0x78]
mov eax, dword [esp + 0x1c]
push 2
push edx
push 1
mov eax, dword [eax + 0x1c]
lea edx, [esp + 0xec]
push edx
lea edx, [esp + 0xe0]
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
mov edx, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x14]
mov eax, dword [edx + 0x1c]
mov dword [ecx + 0x1c], eax
mov eax, dword [edx + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov eax, dword [esp + 0x1c]
mov ecx, dword [ebx + 0x14]
mov eax, dword [eax + 0x20]
mov dword [ecx + 0x20], eax
cmp word [esp + 0x258], 0
je 0x49687b
test edi, edi
je 0x49687b
cmp dword [esp + 0x28], 0
mov ecx, 4
jne 0x496876
mov ecx, dword [ebx + 8]
imul ecx, edi
jmp 0x496898
lea eax, [esp + 0x8f0]
push 0x2a
push eax
call dword [esp + 0x38]
add esp, 8
mov ecx, 4
test eax, eax
jne 0x496898
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
push 0x2a
mov dword [eax + 0x18], ecx
lea eax, [esp + 0x8f4]
push eax
call dword [esp + 0x38]
add esp, 8
test eax, eax
jne 0x4968c8
lea eax, [esp + 0x8f0]
push 0x5b
push eax
call dword [esp + 0x38]
add esp, 8
test eax, eax
je 0x4968db
lea eax, [esp + 0x8f0]
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], eax
mov dword [esp + 0xa0], 3
lea ecx, [esp + 0xac]
mov eax, dword [ebx + 0x14]
mov edx, 5
mov dword [esp + 0x120], eax
call fcn.00495140
test eax, eax
je 0x496b5f
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebx + 0x14]
mov dword [eax + 0x1c], 0
mov dword [esp + 0x60], 4
mov dword [esp + 0xa0], 1
cmp dword [esp + 0x28], 0
je 0x496951
mov ebx, dword [esp + 0x18]
test edi, edi
mov eax, 1
cmovne eax, edi
lea ebx, [ebx + eax*4]
mov dword [esp + 0x18], ebx
jmp 0x496987
mov bl, byte [esp + 0x13]
test bl, bl
je 0x49695f
cmp byte [esp + 0x20], bl
jne 0x496983
test edi, edi
je 0x496978
mov ecx, esi
lea eax, [edi - 1]
sub ecx, dword [esp + 0x18]
imul ecx, eax
lea ebx, [esi + ecx]
mov dword [esp + 0x18], ebx
jmp 0x496987
xor ecx, ecx
lea ebx, [esi + ecx]
mov dword [esp + 0x18], ebx
jmp 0x496987
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x44]
test edx, edx
je 0x4969c3
mov ecx, dword [esp + edx*4 + 0x1f0]
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0x170]
jle 0x4969aa
mov dword [esp + edx*4 + 0x170], eax
cmp byte [esp + edx + 0x130], 0
jne 0x4969c3
mov dword [esp + 0x18], ecx
xor cl, cl
mov byte [esp + 0x20], 0
mov byte [esp + 0x13], cl
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x30]
push 0x7d
push esi
call edi
add esp, 8
test eax, eax
je 0x496a19
mov edx, 0x4db1dc
mov ecx, esi
call fcn.00406570
test eax, eax
je 0x496a07
push 0x7d
push esi
call edi
mov ecx, dword [esp + 0x1c]
add esp, 8
mov edx, 0x4db1dc
mov esi, eax
call fcn.00406570
cmp esi, eax
mov esi, dword [esp + 0x14]
jae 0x496a19
push 0x4ce550
push esi
call dword [esp + 0x54]
add esp, 8
lea esi, [esi + eax*2]
jmp 0x496a55
mov edx, 0x4db1dc
mov ecx, esi
call fcn.00406570
test eax, eax
je 0x496a3e
push 0x4db1dc
push esi
call dword [esp + 0x54]
add esp, 8
lea esi, [esi + eax*2]
add esi, 2
jmp 0x496a55
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x496a43
sub ecx, edx
sar ecx, 1
lea esi, [esi + ecx*2]
mov dword [esp + 0x14], esi
cmp word [esi], 0
je 0x496bcf
mov edx, dword [esp + 0x70]
jmp 0x495554
mov ecx, dword [esp + 0x1c]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push dword [esp + 0x14]
mov ecx, 0x4e7b70
push str.Invalid_structure_definition.
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x1c]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0xd38]
mov ecx, 0x4e7b70
push eax
push 0x4db268
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x1c]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0xd38]
mov ecx, 0x4e7b70
push eax
push str.Invalid_structure_definition.
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
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 eax, dword [edi]
push edi
call dword [eax + 8]
push 0x4b9c40
jmp 0x496d69
mov dword [ecx + 0xb4], edi
mov ecx, dword [esp + 0x1c]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x4a8]
mov ecx, 0x4e7b70
push eax
push str.Variable_was_not_found_in_function.
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x1c]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x4a8]
mov ecx, 0x4e7b70
push eax
push str.Invalid_structure_definition.
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x1c]
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 ecx, dword [esp + 0x1c]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push 0x4b9c40
jmp 0x496d69
mov eax, dword [esi]
push esi
call dword [eax + 8]
lea eax, [esp + 0x258]
mov ecx, 0x4e7b70
push eax
push str.Invalid_structure_definition.
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x1c]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push esi
push str.Invalid_structure_definition.
mov ecx, 0x4e7b70
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x496bf1
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x496bf1
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add edi, edx
test edi, edi
jne 0x496c1b
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x496c0d.1
jmp dword [ecx*4 + 0x496de4]
mov eax, dword [eax]
jmp 0x495365
cmp dword [ebx + 0x18], edi
jge 0x496c9c
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x496c38.1
jmp dword [ecx*4 + 0x496dfc]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401640
push eax
push str.Invalid_Length.
mov ecx, 0x4e7b70
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [eax]
mov ecx, 0x4e7b70
push eax
push str.Invalid_Length.
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4b9c40
mov ecx, 0x4e7b70
push eax
push str.Invalid_Length.
call fcn.00447e20
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebx + 0x14], 0
je 0x496ceb
mov eax, dword [ebx + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [ebx + 0xc], 1
jg 0x496d1a
mov eax, dword [ebx + 8]
mov eax, dword [eax + 0x18]
cmp word [eax], 0
jne 0x496d1a
mov dword [ebx + 0x1c], 0
cmp dword [esp + 0x6c], 2
jle 0x496ceb
mov esi, dword [esp + 0x54]
mov ecx, dword [esi + 8]
call fcn.0046d750
test eax, eax
je 0x496ceb
mov ecx, dword [esi + 8]
call fcn.0046d750
push eax
mov ecx, ebx
call fcn.00497180
cmp dword [ebx + 0xc], 1
jne 0x496d11
mov ecx, dword [ebx + 8]
cmp dword [ecx + 0x18], 0
je 0x496d11
cmp word [ecx + 4], 0
jne 0x496d11
cmp dword [ecx + 0x10], 0
jne 0x496d11
cmp dword [ecx + 0x14], 0
jne 0x496d11
mov byte [ebx + 0x15], 1
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
mov ecx, ebx
call fcn.00496e30
mov dword [ebx + 0x1c], eax
test eax, eax
jne 0x496cc4
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx]
push ebx
call dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x496d4b.1
jmp dword [ecx*4 + 0x496e14]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401640
jmp 0x496d68
mov eax, dword [eax]
jmp 0x496d68
mov eax, 0x4b9c40
push eax
push 0x4cdb90
mov ecx, 0x4e7b70
call fcn.00447e20
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret