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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x8ce4
call fcn.004d2340
push ebx
push esi
push edi
xor ebx, ebx
mov dword [esp + 0x4c], edx
push 0x40
lea eax, [esp + 0x1cc]
mov dword [esp + 0x1c], ebx
mov esi, ecx
push ebx
push eax
mov dword [esp + 0x48], esi
call fcn.004b7c10
add esp, 0xc
lea eax, [esp + 0x148]
push 0x40
push ebx
push eax
call fcn.004b7c10
add esp, 0xc
lea eax, [esp + 0x188]
xorps xmm0, xmm0
movaps xmmword [esp + 0x100], xmm0
push 0x40
push ebx
push eax
call fcn.004b7c10
movq xmm0, qword [str._UInt]
lea eax, [esp + 0x5c]
mov dword [esp + 0x8c], eax
add esp, 0xc
lea eax, [esp + 0xc0]
mov dword [esp + 0x48], ebx
mov dword [esp + 0x84], eax
xor edi, edi
lea eax, [esp + 0x90]
mov dword [esp + 0x38], edi
mov dword [esp + 0x88], eax
lea eax, [esp + 0xf0]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0xd0]
mov dword [esp + 0x68], eax
lea eax, [esp + 0xe0]
mov dword [esp + 0x6c], eax
mov eax, dword [0x4fb7ac]
mov dword [esp + 0x460], eax
mov ax, word [0x4fb7b0]
push 0x436
mov word [esp + 0x468], ax
lea eax, [esp + 0x46a]
push edi
push eax
mov dword [esp + 0x34], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x64], 4
mov dword [esp + 0xd4], 1
mov dword [esp + 0xa4], 1
mov dword [esp + 0x104], 6
movq qword [esp + 0x464], xmm0
call fcn.004b7c10
xor cl, cl
mov dword [esp + 0x70], ebx
add esp, 0xc
mov byte [esp + 0x17], cl
cmp dword [esp + 0x4c], 4
mov byte [esp + 0x24], cl
jne 0x494a91
mov eax, dword [esi + 0xc]
mov esi, dword [eax]
mov dword [esp + 0x20], esi
jmp 0x494bd7
mov ecx, dword [esi]
call fcn.0046d270
test eax, eax
je 0x494ab9
push 0x4da3cc
push str.Invalid_structure_definition.
mov ecx, 0x509c28
call fcn.00447960
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x28
call fcn.004b5f36
add esp, 4
mov dword [esp + 0x34], eax
mov ecx, eax
call fcn.004947c0
push 0
push 0
mov esi, eax
push 0
mov dword [esp + 0x2c], esi
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov dword [esi + 0x20], eax
mov byte [esi + 0x14], 1
test eax, eax
je 0x496375
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x70]
push 1
push ecx
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0048f5a0
add esp, 0x10
cmp dword [esp + 0x78], 1
je 0x494b66
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4960de.1
jmp dword [ecx*4 + 0x4963c0]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401640
push eax
push str.Invalid_structure_definition.
mov ecx, 0x509c28
call fcn.00447960
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4da3cc
push eax
push str.Invalid_structure_definition.
mov ecx, 0x509c28
call fcn.00447960
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x20
call fcn.004b5f36
mov dword [esp + 0x38], eax
add esp, 4
cmp dword [esp + 0x4c], 1
mov dword [eax + 4], 1
mov dword [eax], vtable.Object.0
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], ebx
mov dword [esi + 0x1c], eax
mov eax, dword [esp + 0x70]
mov dword [esi + 0x18], eax
jle 0x494bc6
mov eax, dword [esp + 0x3c]
xor edx, edx
mov ecx, dword [eax + 4]
call fcn.0046cf70
or eax, edx
je 0x494bc6
mov eax, dword [esp + 0x3c]
xor edx, edx
mov ecx, dword [eax + 4]
call fcn.0046cf70
jmp 0x494bd4
push dword [esi + 0x18]
push 8
push dword [esi + 0x20]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [esi + 0x24], eax
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xe8], 6
mov dword [esp + 0xb8], 6
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x494c10.1
jmp dword [ecx*4 + 0x4963d8]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401640
mov esi, eax
mov dword [esp + 0x1c], eax
jmp 0x494c30
mov esi, dword [eax]
mov dword [esp + 0x1c], esi
cmp word [esi], bx
je 0x4960a0
nop dword [eax]
mov eax, dword [esp + 0x48]
mov ebx, edi
push 2
push 0x4fb7b4
push esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x40], eax
call fcn.004c4920
add esp, 0xc
test eax, eax
jne 0x494ce0
mov eax, dword [esp + 0x1c]
movzx edi, word [eax]
test di, di
je 0x494cb1
mov eax, edi
nop dword [eax]
nop dword [eax + eax]
movzx edx, ax
mov ecx, 0x4fa904
mov eax, 0xa
nop dword [eax]
cmp dx, ax
je 0x494d39
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x494c90
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x494c80
mov esi, dword [esp + 0x1c]
mov ecx, esi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x494cc0
sub ecx, edx
sar ecx, 1
lea esi, [esi + ecx*2]
mov dword [esp + 0x1c], esi
cmp word [esi], 0
je 0x4960e5
mov eax, dword [esp + 0x1c]
mov edi, esi
movzx eax, word [eax]
test ax, ax
je 0x494d1d
nop
movzx edx, ax
mov ecx, str._n_r_t
mov eax, 0xa
nop dword [eax]
cmp dx, ax
je 0x494d1f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x494d00
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x494cf0
xor esi, esi
cmp dword [esp + 0x1c], esi
mov esi, dword [esp + 0x1c]
jne 0x494d78
mov ebx, dword [esp + 0x18]
add esi, 2
mov edi, dword [esp + 0x38]
jmp 0x496092
mov esi, dword [esp + 0x1c]
mov eax, edi
mov dword [esp + 0x1c], esi
movzx edx, ax
mov ecx, 0x4fa904
mov eax, 0xa
cmp dx, ax
je 0x494cd6
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x494d50
movzx eax, word [esi + 2]
add esi, 2
mov dword [esp + 0x1c], esi
test ax, ax
jne 0x494d43
xor esi, esi
jmp 0x494cd2
push 0x7b
push esi
call fcn.004b7267
add esp, 8
test eax, eax
je 0x494e8d
mov edx, 0x4fb79c
mov ecx, esi
call fcn.004064f0
test eax, eax
je 0x494dc2
push 0x7b
push esi
call fcn.004b7267
mov ecx, dword [esp + 0x24]
add esp, 8
mov edx, 0x4fb79c
mov esi, eax
call fcn.004064f0
cmp esi, eax
mov esi, dword [esp + 0x1c]
jae 0x494e8d
inc dword [esp + 0x38]
xor eax, eax
test ebx, ebx
push str.struct
cmovne eax, dword [esp + 0x38]
push esi
mov dword [esp + 0x50], eax
call fcn.004b76c3
add esp, 8
test eax, eax
je 0x494e09
push str.struct
push esi
call fcn.004b76c3
mov edi, dword [esp + 0x24]
mov esi, eax
push 0x7b
push edi
call fcn.004b7267
add esp, 0x10
cmp esi, eax
jae 0x494e0d
mov al, 1
jmp 0x494e0f
mov edi, dword [esp + 0x1c]
xor al, al
mov ecx, edi
mov byte [esp + ebx + 0x101], al
call fcn.0048f2f0
mov ebx, dword [esp + 0x18]
movzx ecx, al
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x494e3a
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x28], ecx
push 0x7b
cmovg ecx, dword [esp + 0x2c]
mov dword [esp + eax*4 + 0x1d0], ebx
xor bl, bl
push edi
mov dword [esp + eax*4 + 0x194], ecx
mov dword [esp + 0x30], 0
mov dword [esp + eax*4 + 0x154], 0
mov byte [esp + 0x1f], bl
mov byte [esp + 0x2c], bl
call fcn.004b7267
mov ebx, dword [esp + 0x20]
add esp, 8
mov edi, dword [esp + 0x38]
lea esi, [eax + 2]
jmp 0x496092
cmp word [esi], 0x7d
jne 0x494f61
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x18]
mov eax, ebx
mov ecx, dword [esp + edx*4 + 0x1c8]
sub eax, ecx
mov esi, dword [esp + edx*4 + 0x148]
cmp eax, esi
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x1c]
jle 0x494ec8
mov dword [esp + 0x48], eax
mov dword [esp + edx*4 + 0x148], eax
cmp edx, 1
jle 0x494ef2
cmp byte [esp + edx + 0xff], 0
je 0x494ef2
mov ecx, dword [esp + edx*4 + 0x188]
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x494ef4
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
jmp 0x494ef4
mov ebx, ecx
mov eax, dword [esp + 0x28]
mov edx, ebx
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + ebx*4 + 0x188]
cmp ecx, eax
cmovg eax, ecx
mov ecx, dword [esp + 0x48]
cmp ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
cmovle ecx, dword [esp + 0x2c]
sub ebx, 1
mov dword [esp + 0x38], ebx
mov dword [esp + 0x48], ecx
lea ebx, [edx + ecx]
cmovne ebx, edx
xor cl, cl
add esi, 2
mov byte [esp + 0x17], cl
mov byte [esp + 0x24], cl
mov edx, 0x4fb79c
mov ecx, esi
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], esi
call fcn.004064f0
cmp esi, eax
jne 0x494f58
lea esi, [edi + 4]
mov dword [esp + 0x1c], esi
mov edi, dword [esp + 0x38]
jmp 0x496096
mov edx, 0x4fb7d8
mov dword [esp + 0x30], 0
mov ecx, esi
mov dword [esp + 0x2c], 0
call fcn.004064f0
test eax, eax
je 0x494fbf
push 0x4fb7d8
push esi
call fcn.004c5f8b
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x4960eb
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0xce8]
push esi
push ebx
push eax
call fcn.004c41d6
add esp, 0xc
xor eax, eax
mov word [esp + esi*2 + 0xce8], ax
jmp 0x495004
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x494fc4
sub ecx, edx
sar ecx, 1
cmp ecx, 0x4000
ja 0x49622b
lea edx, [esp + 0xce8]
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 0x494ff0
mov ebx, dword [esp + 0x1c]
or edx, 0xffffffff
lea ecx, [esp + 0xce8]
call fcn.004275a0
lea eax, [esp + 0xce8]
push 0x2a
push eax
call fcn.004b7267
add esp, 8
test eax, eax
je 0x49506b
lea eax, [esp + 0xce8]
push 0x3a
push eax
call fcn.004b7267
add esp, 8
test eax, eax
jne 0x496111
push eax
push eax
push 0x4001
push 0xffffffffffffffff
push 1
push 0x4da3cc
mov edx, 0x4f3644
lea ecx, [esp + 0xd00]
call fcn.0049c380
add esp, 0x18
mov dword [esp + 0x30], eax
lea eax, [esp + 0xce8]
push 0x5b
push eax
call fcn.004b7267
add esp, 8
test eax, eax
je 0x495124
push 0x14
lea eax, [esp + 0xcec]
push 0x5b
push eax
call fcn.004b7267
add esp, 8
push eax
lea eax, [esp + 0x120]
push eax
call fcn.004c41d6
add esp, 0xc
lea eax, [esp + 0x118]
push 0x4fb81c
push eax
call fcn.004c5f8b
xor ecx, ecx
mov word [esp + eax*2 + 0x122], cx
lea ecx, [esp + 0x122]
call fcn.00404d50
push 0
push 0
push 0x4001
push 1
push 1
push 0x4da3cc
lea edx, [esp + 0x138]
mov dword [esp + 0x4c], eax
lea ecx, [esp + 0xd08]
call fcn.0049c380
lea eax, [esp + 0xd08]
push 0x5b
push eax
call fcn.004b7267
add esp, 0x28
test eax, eax
jne 0x49613b
or edx, 0xffffffff
lea ecx, [esp + 0xce8]
call fcn.004275a0
mov di, word [esp + 0xce8]
lea esi, [esp + 0xce8]
test di, di
je 0x4951ad
movzx eax, di
nop dword [eax + eax]
movzx edx, ax
mov ecx, 0x4f0cac
mov eax, 0x20
nop dword [eax]
cmp dx, ax
je 0x4951cb
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495150
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495140
lea esi, [esp + 0xce8]
movzx eax, di
nop word [eax + eax]
movzx edx, ax
mov ecx, 0x4fb7d8
mov eax, 0x7d
nop dword [eax]
cmp dx, ax
je 0x4951cb
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495190
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x495180
mov edx, 0x4fb7d8
mov ecx, ebx
call fcn.004064f0
test eax, eax
jne 0x495406
cmp dword [esp + 0x18], eax
jne 0x495406
lea eax, [esp + 0xce8]
push 0x4f3fd8
push eax
call fcn.004c5f8b
mov esi, eax
add esp, 8
cmp esi, 0x218
ja 0x49613b
lea ecx, [esp + 0xce8]
movzx edx, word [ecx]
cmp edx, 0x20
je 0x495202
cmp edx, 9
jne 0x495207
add ecx, 2
jmp 0x4951f5
mov edx, 0x4f0cac
call fcn.004064f0
mov ebx, eax
test ebx, ebx
je 0x49521d
cmp word [ebx], 0x3a
je 0x495284
lea ecx, [esp + 0x458]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495227
sub ecx, edx
sar ecx, 1
lea eax, [ecx - 2]
push eax
lea eax, [esp + 0xcec]
push eax
lea eax, [esp + 0x462]
push eax
call fcn.004bb7bb
add esp, 0xc
test eax, eax
je 0x495260
xor cl, cl
mov byte [esp + 0x17], cl
mov byte [esp + 0x24], cl
push esi
lea eax, [esp + 0xcec]
push eax
lea eax, [esp + 0x462]
push eax
call fcn.004c41d6
add esp, 0xc
mov dword [esp + esi*2 + 0x45a], 0x20
mov di, word [esp + 0xce8]
lea esi, [esp + 0xce8]
mov eax, dword [esp + 0x24]
mov byte [esp + 0x43], al
test di, di
je 0x4952cd
movzx eax, di
movzx edx, ax
mov ecx, 0x4fba7c
mov eax, 0x20
cmp dx, ax
je 0x4952dc
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 0x4952a3
xor eax, eax
mov word [esp + 0x208], ax
jmp 0x4954ac
lea edx, [esp + 0xce8]
movzx eax, di
nop word [eax + eax]
movzx esi, ax
mov ecx, 0x4fba7c
mov eax, 0x20
nop dword [eax]
cmp si, ax
je 0x49531f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495300
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
jne 0x4952f0
xor edx, edx
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x495322
sub edx, ecx
sar edx, 1
cmp edx, 0x11b
ja 0x49613b
test ebx, ebx
je 0x495350
cmp word [ebx], 0x3a
jne 0x495350
lea edx, [esp + 0xce8]
jmp 0x49538f
lea edx, [esp + 0xce8]
movzx eax, di
nop word [eax + eax]
movzx esi, ax
mov ecx, 0x4fba7c
mov eax, 0x20
nop dword [eax]
cmp si, ax
je 0x49538f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x495370
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
jne 0x495360
xor edx, edx
lea ecx, [esp + 0x208]
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
add ecx, 2
test ax, ax
jne 0x495396
lea eax, [esp + 0x208]
push 0x3a
push eax
call fcn.004b7267
add esp, 8
test eax, eax
je 0x4953f4
xor ecx, ecx
mov word [eax], cx
lea ecx, [eax + 2]
call fcn.00417fc0
mov ecx, dword [esp + 0x24]
xor ebx, ebx
movzx edx, cl
movzx ecx, byte [esp + 0x43]
shr edx, 3
cmp edx, dword [esp + 0x44]
mov byte [esp + 0x17], al
cmovne ebx, ecx
add bl, al
or edx, 0xffffffff
mov dword [esp + 0x24], ebx
jmp 0x495492
xor cl, cl
or edx, 0xffffffff
mov byte [esp + 0x17], cl
mov byte [esp + 0x24], cl
jmp 0x495492
lea ecx, [esp + 0xce8]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495410
sub ecx, edx
sar ecx, 1
cmp ecx, 0x125
ja 0x49613b
push 0x125
lea eax, [esp + 0xcec]
push eax
lea eax, [esp + 0x210]
push eax
call fcn.004c41d6
add esp, 0xc
lea eax, [esp + 0x208]
push 0x3a
push eax
call fcn.004b7267
add esp, 8
test eax, eax
je 0x49548d
xor ecx, ecx
mov word [eax], cx
lea ecx, [eax + 2]
call fcn.00417fc0
mov bl, al
xor edx, edx
mov eax, dword [esp + 0x24]
movzx ecx, al
shr ecx, 3
cmp ecx, dword [esp + 0x44]
movzx eax, al
cmovne edx, eax
mov byte [esp + 0x17], bl
add dl, bl
mov byte [esp + 0x24], dl
mov edx, 0xffffffff
lea ecx, [esp + 0x208]
call fcn.00427530
mov edx, eax
lea ecx, [esp + 0x208]
call fcn.004275a0
mov esi, dword [esp + 0x20]
mov edi, dword [esp + 0x2c]
cmp byte [esi + 0x14], 0
je 0x4954d3
cmp word [esp + 0x208], 0
jne 0x4954d3
test edi, edi
mov eax, 1
cmove edi, eax
mov dword [esp + 0x2c], edi
lea eax, [esp + 0x208]
push 0x28
push eax
call fcn.004b7267
add esp, 8
test eax, eax
jne 0x496205
mov ecx, str._bool
lea eax, [esp + 0x458]
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x495526
test dx, dx
je 0x495522
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x495526
add eax, 4
add ecx, 4
test dx, dx
jne 0x495500
xor eax, eax
jmp 0x49552b
sbb eax, eax
or eax, 1
test eax, eax
jne 0x49553a
mov esi, 1
mov dword [esp + 0x44], esi
jmp 0x495574
xor esi, esi
nop dword [eax]
mov ecx, dword [esi*4 + 0x4fd148]
lea edx, [esp + 0x458]
call fcn.0049bfa0
test eax, eax
jne 0x49555f
inc esi
cmp esi, 8
jl 0x495540
jmp 0x495565
lea eax, [esi + 1]
movzx eax, ax
movsx esi, ax
mov dword [esp + 0x44], esi
test esi, esi
je 0x4959b7
cmp dword [esp + 0x30], 0
je 0x4955d5
mov ebx, dword [esp + 0x18]
mov ecx, ebx
and ecx, reloc.WSOCK32.dll_closesocket
jns 0x495590
dec ecx
or ecx, 0xfffffffc
add ecx, 1
je 0x4955ab
mov eax, 4
sub eax, ecx
and eax, reloc.WSOCK32.dll_closesocket
jns 0x4955a5
dec eax
or eax, 0xfffffffc
inc eax
add ebx, eax
mov dword [esp + 0x18], ebx
cmp dword [esp + 0x28], 4
mov cl, byte [esp + 0x17]
jge 0x4955be
mov dword [esp + 0x28], 4
mov eax, dword [esp + 0x30]
xor edx, edx
mov dword [esp + 0x34], edx
test eax, eax
jne 0x495622
test edi, edi
jne 0x495622
movzx ebx, cl
jmp 0x49562c
mov cl, byte [esp + 0x17]
test cl, cl
je 0x4955e5
mov edx, dword [esp + 0x24]
cmp dl, cl
jne 0x495603
mov ebx, dword [esp + 0x18]
mov eax, ebx
cdq
idiv esi
test edx, edx
je 0x4955ff
mov eax, esi
sub eax, edx
cdq
idiv esi
add ebx, edx
mov dword [esp + 0x18], ebx
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
cmp esi, eax
cmovg eax, esi
mov dword [esp + 0x28], eax
test edi, edi
jne 0x4955be
movzx ebx, cl
movzx edx, dl
sub edx, ebx
mov dword [esp + 0x34], edx
jmp 0x49562c
xor ebx, ebx
test eax, eax
jne 0x495664
test edi, edi
jne 0x495664
lea edx, [esp + 0x458]
mov ecx, str._TCHAR_LPTSTR_LPCTSTR_LPWSTR_LPCWSTR_WCHAR
call fcn.0049bfa0
test eax, eax
je 0x495648
mov esi, 0x4b0
jmp 0x49566f
lea edx, [esp + 0x458]
mov ecx, str._CHAR_LPSTR_LPCSTR_UCHAR
call fcn.0049bfa0
mov esi, eax
neg esi
sbb esi, esi
neg esi
dec esi
jmp 0x49566f
or esi, 0xffffffff
test eax, eax
jne 0x495689
test edi, edi
jne 0x495689
lea edx, [esp + 0x458]
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.0049bfa0
mov edi, eax
neg edi
sbb edi, edi
inc edi
jmp 0x495695
xor edi, edi
test eax, eax
jne 0x4956b1
cmp dword [esp + 0x2c], edx
jne 0x4956b1
lea edx, [esp + 0x458]
mov ecx, str._FLOAT_DOUBLE_PFLOAT_PDOUBLE
call fcn.0049bfa0
mov edx, dword [esp + 0x34]
neg eax
sbb eax, eax
inc eax
jmp 0x4956b3
xor eax, eax
mov ecx, dword [esp + 0x18]
test ecx, ecx
je 0x4956d7
mov cl, byte [esp + 0x17]
test cl, cl
je 0x4956d3
cmp byte [esp + 0x24], cl
mov ecx, dword [esp + 0x18]
je 0x4956d7
sub ecx, dword [esp + 0x44]
jmp 0x4956d7
mov ecx, dword [esp + 0x18]
push edx
push ebx
push esi
mov esi, dword [esp + 0x38]
push edi
mov edi, dword [esp + 0x30]
push eax
push dword [esp + 0x58]
lea eax, [esp + 0x7c]
push esi
push ecx
push dword [esp + 0x50]
mov ecx, edi
push eax
lea eax, [esp + 0x230]
push eax
call fcn.00496670
mov ebx, eax
test ebx, ebx
je 0x496165
mov edx, dword [esp + 0x30]
test esi, esi
jne 0x49571c
test edx, edx
je 0x49597b
xor ecx, ecx
nop
movzx eax, word [esp + ecx + 0x458]
lea ecx, [ecx + 2]
mov word [esp + ecx + 0x89e], ax
test ax, ax
jne 0x495720
mov di, word [esp + 0x208]
test edx, edx
je 0x4957bb
test esi, esi
jne 0x495752
test di, di
jne 0x495752
lea eax, [esi + 1]
jmp 0x495754
xor eax, eax
mov esi, edx
sub esi, eax
je 0x4957b7
nop word [eax + eax]
lea ecx, [esp + 0x8a0]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495770
sub ecx, edx
sar ecx, 1
je 0x4957a5
nop dword [eax]
nop word [eax + eax]
mov ax, word [esp + ecx*2 + 0x8a0]
mov word [esp + ecx*2 + 0x8a2], ax
sub ecx, 1
jne 0x495790
mov eax, 0x2a
mov word [esp + 0x8a2], ax
sub esi, 1
jne 0x495760
mov esi, dword [esp + 0x2c]
test di, di
je 0x495810
test esi, esi
je 0x495810
lea edx, [esp + 0x8a0]
lea ecx, [edx + 2]
nop
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4957d0
sub edx, ecx
lea ecx, [esp + 0x118]
sar edx, 1
lea eax, [edx + edx]
mov edx, ecx
sub eax, edx
lea edx, [esp + 0x8a0]
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 0x495800
mov edi, dword [esp + 0x20]
lea eax, [esp + 0x8a0]
push 1
lea edx, [esp + 0x6c]
mov dword [esp + 0xd4], eax
push edx
mov ecx, dword [edi + 0x1c]
lea edx, [esp + 0xb8]
push 0
push edx
lea edx, [esp + 0xb0]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x1c]
cmp eax, 3
jne 0x495858
mov eax, dword [esp + 0xa0]
mov dword [ebx + 0x14], eax
jmp 0x495977
push 0x28
call fcn.004b5f36
add esp, 4
mov dword [esp + 0x34], eax
mov ecx, eax
call fcn.004947c0
mov dword [ebx + 0x14], eax
test eax, eax
je 0x496174
push 2
lea edx, [esp + 0x6c]
mov dword [esp + 0xe4], eax
mov eax, dword [edi + 0x1c]
push edx
push 1
lea edx, [esp + 0xbc]
mov ecx, dword [eax]
push edx
lea edx, [esp + 0xb0]
push edx
push eax
call dword [ecx + 0x1c]
mov eax, dword [esp + 0xa0]
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 + 0x208], 0
je 0x4958ec
test esi, esi
je 0x4958ec
cmp dword [esp + 0x30], 0
mov ecx, 4
jne 0x4958e7
mov ecx, dword [ebx + 8]
imul ecx, esi
jmp 0x49590a
lea eax, [esp + 0x8a0]
push 0x2a
push eax
call fcn.004b7267
add esp, 8
mov ecx, 4
test eax, eax
jne 0x49590a
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
mov edx, 4
mov dword [eax + 0x18], ecx
lea eax, [esp + 0x8a0]
mov dword [esp + 0x58], 0
lea ecx, [esp + 0x80]
mov dword [esp + 0x50], eax
mov dword [esp + 0x98], 3
mov eax, dword [ebx + 0x14]
mov dword [esp + 0xf0], eax
call fcn.00494940
test eax, eax
je 0x496165
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 + 0x58], 4
mov dword [esp + 0x98], 1
mov edx, dword [esp + 0x30]
mov bl, byte [esp + 0x17]
test bl, bl
je 0x49598d
cmp byte [esp + 0x24], bl
jne 0x495fb6
mov ecx, dword [esp + 0x44]
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 0x495fba
lea eax, [esp + 0x458]
mov dword [esp + 0x50], 0
push 0x28
push eax
call fcn.004b7267
add esp, 8
test eax, eax
mov eax, dword [0x50499c]
je 0x495b03
mov edi, dword [eax + 0xb4]
lea eax, [esp + 0x458]
push 0
push 0x4fb878
push eax
call fcn.004c5f8b
add esp, 8
dec eax
mov ecx, 0x509c28
push eax
lea eax, [esp + 0x462]
push eax
call fcn.00438d90
mov ecx, dword [0x50499c]
mov dword [ecx + 0xb4], eax
test eax, eax
je 0x496184
lea esi, [esp + 0x458]
lea ecx, [esi + 2]
nop dword [eax]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x495a30
push 0
push 2
push 0
lea eax, [esp + 0x464]
sub esi, ecx
push 0x4fb878
push eax
sar esi, 1
call fcn.004c5f8b
add esp, 8
sub esi, eax
sub esi, 3
lea eax, [esp + 0x464]
push esi
push 0x4fb878
push eax
call fcn.004c5f8b
add esp, 8
lea ecx, [esp + 0x46a]
lea eax, [ecx + eax*2]
mov ecx, 0x509c28
push eax
call fcn.0043abb0
mov dword [esp + 0x50], eax
mov eax, dword [0x50499c]
mov dword [eax + 0xb4], edi
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x495ae7
lea ecx, [esp + 0x458]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495ab0
sub ecx, edx
push 0
sar ecx, 1
push 1
push 0
lea eax, [ecx - 2]
mov ecx, 0x509c28
push eax
lea eax, [esp + 0x46a]
push eax
call fcn.0043abb0
mov dword [esp + 0x50], eax
test eax, eax
je 0x4961b4
mov edi, dword [esp + 0x30]
test edi, edi
jne 0x495c1e
mov ecx, dword [esp + 0x58]
cmp ecx, 5
ja case.0x495afc.1
jmp dword [ecx*4 + 0x4963f0]
cmp dword [eax + 0xb4], 0
je 0x495a99
lea ecx, [esp + 0x458]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495b16
sub ecx, edx
push 0
sar ecx, 1
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x509c28
push eax
lea eax, [esp + 0x46a]
push eax
call fcn.0043abb0
mov dword [esp + 0x50], eax
jmp 0x495a9d
push 0
push 1
mov ecx, eax
call fcn.00401640
jmp case.0x495afc.0
mov eax, 0x4da3cc
mov ecx, eax
call fcn.0048f2f0
mov ecx, dword [esp + 0x28]
mov bl, byte [esp + 0x17]
movzx eax, al
cmp eax, ecx
cmovg ecx, eax
mov dword [esp + 0x28], ecx
test bl, bl
je 0x495b81
cmp byte [esp + 0x24], bl
jne 0x495ba1
mov esi, dword [esp + 0x18]
test esi, esi
je 0x495ba5
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x495ba5
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x18], esi
jmp 0x495ba5
mov esi, dword [esp + 0x18]
mov eax, esi
cdq
mov dword [esp + 0xc0], eax
lea eax, [esp + 0x28]
mov dword [esp + 0xc4], edx
cdq
mov dword [esp + 0x90], eax
lea eax, [esp + 0x80]
push 3
push eax
lea eax, [esp + 0x78]
mov dword [esp + 0x9c], edx
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0048f5a0
add esp, 0x10
cmp dword [esp + 0x78], 1
jne 0x4961b4
test bl, bl
je 0x495bfe
cmp byte [esp + 0x24], bl
jne 0x495c94
mov ecx, dword [esp + 0x28]
mov eax, esi
cdq
idiv ecx
test edx, edx
je 0x495c94
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add esi, edx
mov dword [esp + 0x18], esi
jmp 0x495c94
push 1
lea eax, [esp + 0x84]
xorps xmm0, xmm0
push eax
lea eax, [esp + 0x78]
movlpd qword [esp + 0xc8], xmm0
push eax
lea eax, [esp + 0x40]
push eax
call fcn.0048f5a0
add esp, 0x10
cmp dword [esp + 0x78], 1
jne 0x4961b4
mov esi, dword [esp + 0x18]
mov ecx, esi
and ecx, reloc.WSOCK32.dll_closesocket
jns 0x495c66
dec ecx
or ecx, 0xfffffffc
add ecx, 1
je 0x495c81
mov eax, 4
sub eax, ecx
and eax, reloc.WSOCK32.dll_closesocket
jns 0x495c7b
dec eax
or eax, 0xfffffffc
inc eax
add esi, eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x28]
mov ecx, 4
cmp eax, 4
cmovl eax, ecx
mov dword [esp + 0x28], eax
push 0
push 0
xor eax, eax
mov ecx, esi
mov esi, dword [esp + 0x78]
test edi, edi
push 0xffff
push 0
cmovne ecx, eax
mov eax, esi
push 0
sub eax, ecx
mov ecx, dword [esp + 0x34]
push eax
push dword [esp + 0x44]
lea eax, [esp + 0x80]
push dword [esp + 0x34]
push edi
push eax
lea eax, [esp + 0x230]
push eax
call fcn.00496670
mov ebx, eax
test ebx, ebx
je 0x4961de
xor edx, edx
movzx ecx, word [esp + edx + 0x458]
lea edx, [edx + 2]
mov word [esp + edx + 0x89e], cx
test cx, cx
jne 0x495ce1
test edi, edi
mov di, word [esp + 0x208]
je 0x495d7b
cmp dword [esp + 0x2c], 0
jne 0x495d18
test di, di
jne 0x495d18
mov eax, 1
jmp 0x495d1a
xor eax, eax
mov esi, dword [esp + 0x30]
sub esi, eax
je 0x495d77
lea ecx, [esp + 0x8a0]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x495d30
sub ecx, edx
sar ecx, 1
je 0x495d65
nop dword [eax]
nop word [eax + eax]
mov ax, word [esp + ecx*2 + 0x8a0]
mov word [esp + ecx*2 + 0x8a2], ax
sub ecx, 1
jne 0x495d50
mov eax, 0x2a
mov word [esp + 0x8a2], ax
sub esi, 1
jne 0x495d22
mov esi, dword [esp + 0x70]
test di, di
mov edi, dword [esp + 0x2c]
je 0x495dd0
test edi, edi
je 0x495dd0
lea edx, [esp + 0x8a0]
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x495d92
sub edx, ecx
lea ecx, [esp + 0x118]
sar edx, 1
lea eax, [edx + edx]
mov edx, ecx
sub eax, edx
lea edx, [esp + 0x8a0]
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 0x495dc0
lea eax, [esp + 0x8a0]
mov dword [esp + 0xd0], eax
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x20]
push 1
push edx
push 0
mov ecx, dword [eax + 0x1c]
lea edx, [esp + 0xbc]
push edx
lea edx, [esp + 0xb0]
push edx
mov eax, dword [ecx]
push ecx
call dword [eax + 0x1c]
cmp eax, 3
jne 0x495e18
mov eax, dword [esp + 0xa0]
mov dword [ebx + 0x14], eax
jmp 0x495f66
push 0x28
call fcn.004b5f36
add esp, 4
mov dword [esp + 0x34], eax
mov ecx, eax
call fcn.004947c0
mov dword [ebx + 0x14], eax
test eax, eax
je 0x4961f1
mov dword [esp + 0xe0], eax
lea edx, [esp + 0x68]
mov eax, dword [esp + 0x20]
push 2
push edx
push 1
mov eax, dword [eax + 0x1c]
lea edx, [esp + 0xbc]
push edx
lea edx, [esp + 0xb0]
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
mov edx, dword [esp + 0x20]
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 + 0x20]
mov ecx, dword [ebx + 0x14]
mov eax, dword [eax + 0x20]
mov dword [ecx + 0x20], eax
cmp word [esp + 0x208], 0
je 0x495eab
test edi, edi
je 0x495eab
cmp dword [esp + 0x30], 0
mov ecx, 4
jne 0x495ea6
mov ecx, dword [ebx + 8]
imul ecx, edi
jmp 0x495ec9
lea eax, [esp + 0x8a0]
push 0x2a
push eax
call fcn.004b7267
add esp, 8
mov ecx, 4
test eax, eax
jne 0x495ec9
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
push 0x2a
mov dword [eax + 0x18], ecx
lea eax, [esp + 0x8a4]
push eax
call fcn.004b7267
add esp, 8
test eax, eax
jne 0x495efb
lea eax, [esp + 0x8a0]
push 0x5b
push eax
call fcn.004b7267
add esp, 8
test eax, eax
je 0x495f0e
lea eax, [esp + 0x8a0]
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x98], 3
lea ecx, [esp + 0x80]
mov eax, dword [ebx + 0x14]
mov edx, 4
mov dword [esp + 0xf0], eax
call fcn.00494940
test eax, eax
je 0x4961de
mov eax, dword [esp + 0x20]
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 + 0x58], 4
mov dword [esp + 0x98], 1
cmp dword [esp + 0x30], 0
je 0x495f84
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 0x495fba
mov bl, byte [esp + 0x17]
test bl, bl
je 0x495f92
cmp byte [esp + 0x24], bl
jne 0x495fb6
test edi, edi
je 0x495fab
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 0x495fba
xor ecx, ecx
lea ebx, [esi + ecx]
mov dword [esp + 0x18], ebx
jmp 0x495fba
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
test edi, edi
je 0x495ff8
mov ecx, dword [esp + edi*4 + 0x1c8]
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + edi*4 + 0x148]
jle 0x495fdd
mov dword [esp + edi*4 + 0x148], eax
cmp byte [esp + edi + 0x100], 0
jne 0x495ff8
mov ebx, ecx
mov byte [esp + 0x24], 0
xor cl, cl
mov dword [esp + 0x18], ebx
mov byte [esp + 0x17], cl
mov esi, dword [esp + 0x1c]
push 0x7d
push esi
call fcn.004b7267
add esp, 8
test eax, eax
je 0x496051
mov edx, 0x4fb79c
mov ecx, esi
call fcn.004064f0
test eax, eax
je 0x49603e
push 0x7d
push esi
call fcn.004b7267
mov ecx, dword [esp + 0x24]
add esp, 8
mov edx, 0x4fb79c
mov esi, eax
call fcn.004064f0
cmp esi, eax
mov esi, dword [esp + 0x1c]
jae 0x496051
push 0x4eec28
push esi
call fcn.004c5f8b
add esp, 8
lea esi, [esi + eax*2]
jmp 0x496092
mov edx, 0x4fb79c
mov ecx, esi
call fcn.004064f0
test eax, eax
je 0x496077
push 0x4fb79c
push esi
call fcn.004c5f8b
add esp, 8
lea esi, [esi + eax*2]
add esi, 2
jmp 0x496092
mov ecx, esi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x496080
sub ecx, edx
sar ecx, 1
lea esi, [esi + ecx*2]
mov dword [esp + 0x1c], esi
cmp word [esi], 0
jne 0x494c40
mov esi, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x4960be
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x4960be
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
test ebx, ebx
jne 0x496255
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4960de.1
jmp dword [ecx*4 + 0x496408]
mov ebx, dword [esp + 0x18]
jmp 0x4960a0
mov ecx, dword [esp + 0x20]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push dword [esp + 0x1c]
mov ecx, 0x509c28
push str.Invalid_structure_definition.
call fcn.00447960
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x20]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0xce8]
mov ecx, 0x509c28
push eax
push 0x4fb820
call fcn.00447960
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x20]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0xce8]
mov ecx, 0x509c28
push eax
push str.Invalid_structure_definition.
call fcn.00447960
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 0x4da3cc
jmp 0x4963a7
mov dword [ecx + 0xb4], edi
mov ecx, dword [esp + 0x20]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x458]
mov ecx, 0x509c28
push eax
push str.Variable_was_not_found_in_function.
call fcn.00447960
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x20]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x458]
mov ecx, 0x509c28
push eax
push str.Invalid_structure_definition.
call fcn.00447960
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x20]
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 + 0x20]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push 0x4da3cc
jmp 0x4963a7
mov eax, dword [esi]
push esi
call dword [eax + 8]
lea eax, [esp + 0x208]
mov ecx, 0x509c28
push eax
push str.Invalid_structure_definition.
call fcn.00447960
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x20]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push esi
push str.Invalid_structure_definition.
mov ecx, 0x509c28
call fcn.00447960
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [eax]
jmp 0x494b4d
cmp dword [esi + 0x18], ebx
jge 0x4962d6
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x496272.1
jmp dword [ecx*4 + 0x496420]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401640
push eax
push str.Invalid_Length.
mov ecx, 0x509c28
call fcn.00447960
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [eax]
mov ecx, 0x509c28
push eax
push str.Invalid_Length.
call fcn.00447960
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4da3cc
mov ecx, 0x509c28
push eax
push str.Invalid_Length.
call fcn.00447960
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi + 0x14], 0
je 0x496325
mov eax, dword [esi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [esi + 0xc], 1
jg 0x496354
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x18]
cmp word [eax], 0
jne 0x496354
mov dword [esi + 0x1c], 0
cmp dword [esp + 0x4c], 2
jle 0x496325
mov ebx, dword [esp + 0x3c]
mov ecx, dword [ebx + 8]
call fcn.0046d270
test eax, eax
je 0x496325
mov ecx, dword [ebx + 8]
call fcn.0046d270
push eax
mov ecx, esi
call fcn.004967a0
cmp dword [esi + 0xc], 1
jne 0x49634b
mov ecx, dword [esi + 8]
cmp dword [ecx + 0x18], 0
je 0x49634b
cmp word [ecx + 4], 0
jne 0x49634b
cmp dword [ecx + 0x10], 0
jne 0x49634b
cmp dword [ecx + 0x14], 0
jne 0x49634b
mov byte [esi + 0x15], 1
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0
push 0
mov ecx, esi
call fcn.00496450
mov dword [esi + 0x1c], eax
test eax, eax
jne 0x4962fe
mov eax, dword [esi]
push esi
call dword [eax + 8]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x496389.1
jmp dword [ecx*4 + 0x496438]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401640
jmp 0x4963a6
mov eax, dword [eax]
jmp 0x4963a6
mov eax, 0x4da3cc
push eax
push 0x4ee268
mov ecx, 0x509c28
call fcn.00447960
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret