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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x4794
call fcn.004cd3a0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [esp + 0x48], edx
push 0x40
lea eax, [esp + 0x30c]
mov dword [esp + 0x18], ebx
mov edi, ecx
push ebx
push eax
mov dword [esp + 0x58], edi
call fcn.004b4390
add esp, 0xc
lea eax, [esp + 0x288]
push 0x40
push ebx
push eax
call fcn.004b4390
add esp, 0xc
lea eax, [esp + 0x2c8]
xorps xmm0, xmm0
movaps xmmword [esp + 0x150], xmm0
push 0x40
push ebx
push eax
call fcn.004b4390
xor eax, eax
mov dword [esp + 0x74], 1
mov dword [esp + 0x70], eax
add esp, 0xc
mov dword [esp + 0x38], eax
xor esi, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x50]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0x110]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0x88]
mov dword [esp + 0xbc], eax
lea eax, [esp + 0xc8]
mov dword [esp + 0xc0], eax
lea eax, [esp + 0x140]
mov dword [esp + 0xc4], eax
lea eax, [esp + 0x120]
mov dword [esp + 0x70], eax
lea eax, [esp + 0x130]
mov dword [esp + 0x74], eax
mov eax, dword [str._UInt]
mov dword [esp + 0x348], eax
mov ax, word [0x4e0afc]
mov word [esp + 0x34c], ax
mov al, byte [0x4e0afe]
push 0x21b
mov byte [esp + 0x352], al
lea eax, [esp + 0x353]
push esi
push eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x64], 4
mov dword [esp + 0x124], 1
mov dword [esp + 0x9c], 1
mov dword [esp + 0xdc], 1
mov dword [esp + 0x154], 6
call fcn.004b4390
add esp, 0xc
mov byte [esp + 0x13], bl
cmp dword [esp + 0x48], 4
mov byte [esp + 0x24], bl
mov dword [esp + 0x6c], ebx
jle 0x4962f1
mov eax, dword [edi + 0x10]
mov esi, dword [eax]
mov dword [esp + 0x1c], esi
jmp 0x496485
mov eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 6
je 0x49631d
cmp ecx, 4
jne 0x496355
mov eax, dword [eax]
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x49630e
mov edx, dword [eax + 0xc]
jmp 0x496310
mov edx, eax
test byte [edx + 0x15], 2
je 0x49633e
test cl, cl
jne 0x49631d
mov eax, dword [eax + 0xc]
cmp dword [eax], ebx
je 0x496355
push 0x4d5231
push str.Invalid_structure_definition.
mov ecx, 0x4ed830
call fcn.0043ed90
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test cl, cl
jne 0x496347
mov ecx, dword [eax + 0xc]
jmp 0x496349
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x496355
push eax
call fcn.0043f490
push 0x28
call fcn.004b3125
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
mov dword [esp + 0x40], esi
push 0
push 0
push 0
mov dword [esi + 4], 1
mov dword [esi], vtable.Struct.0
mov dword [esi + 8], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 0x10], ebx
mov word [esi + 0x14], bx
mov dword [esi + 0x18], ebx
mov dword [esi + 0x20], ebx
mov dword [esi + 0x24], ebx
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov dword [esi + 0x20], eax
mov byte [esi + 0x14], 1
test eax, eax
je 0x498141
push 1
push edi
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.00490690
add esp, 0x10
cmp dword [esp + 0x80], 1
je 0x49641c
mov eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x497f7c.1
jmp dword [ecx*4 + 0x498188]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401550
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4ed830
call fcn.0043ed90
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4d5231
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4ed830
call fcn.0043ed90
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x20
call fcn.004b3125
add esp, 4
mov dword [esp + 0x40], eax
cmp dword [esp + 0x48], 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 + 0x78]
mov dword [esi + 0x18], eax
jle 0x496474
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.004683f0
or eax, edx
je 0x496474
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.004683f0
jmp 0x496482
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 + 0x128], ebx
mov dword [esp + 0x138], 6
mov dword [esp + 0xf0], 6
mov eax, dword [esi + 0x1c]
mov dword [esp + 0xe8], eax
mov eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4964b6.1
jmp dword [ecx*4 + 0x4981a0]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401550
mov edi, eax
mov dword [esp + 0x18], eax
jmp 0x4964dd
mov edi, dword [eax]
jmp 0x4964d9
mov edi, 0x4d5231
mov dword [esp + 0x18], edi
mov ecx, edi
nop
mov al, byte [ecx]
cmp al, 0x20
je 0x4964ea
cmp al, 9
jne 0x4964ed
inc ecx
jmp 0x4964e0
test al, al
je 0x496535
cmp al, 0x2d
je 0x4964f9
cmp al, 0x2b
jne 0x496500
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x496535
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x49650f
cmp al, 0x58
jne 0x496535
movsx eax, byte [ecx + 2]
push eax
call fcn.004b99b0
add esp, 4
test eax, eax
je 0x496535
push 0x10
push 0
push edi
call fcn.004b9ad3
mov esi, eax
add esp, 0xc
mov dword [esp + 0x34], esi
jmp 0x496544
push edi
call fcn.004b9548
add esp, 4
mov dword [esp + 0x34], eax
mov esi, eax
mov eax, dword [0x4e88cc]
cmp byte [eax + 0xd5], 0x44
jne 0x496569
push 0xa
lea eax, [esp + 0x100]
push eax
push esi
call fcn.004b6198
add esp, 0xc
mov ecx, eax
jmp 0x4965d2
movzx eax, byte [esp + 0xfc]
test esi, esi
mov ecx, 0x2d
cmovs eax, ecx
lea ecx, [esp + 0xfd]
mov byte [esp + 0xfc], al
lea eax, [esp + 0xfc]
cmovs eax, ecx
lea esi, [eax + 1]
push 0x10
mov byte [eax], 0x30
mov eax, dword [esp + 0x38]
cdq
mov byte [esi], 0x78
xor eax, edx
inc esi
sub eax, edx
push esi
push eax
call fcn.004b6198
mov eax, dword [0x4e88cc]
add esp, 0xc
cmp byte [eax + 0xd5], 0x48
jne 0x4965c7
push esi
call dword [sym.imp.USER32.dll_CharUpperA]
mov esi, dword [esp + 0x34]
lea ecx, [esp + 0xfc]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4965d5
sub ecx, edx
cmp byte [ecx + edi], 0x3a
jne 0x496615
test esi, esi
jle 0x496615
lea ecx, [esp + 0xfc]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4965f2
sub ecx, edx
inc edi
mov eax, esi
add edi, ecx
cdq
mov dword [esp + 0x18], edi
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], edx
jmp 0x496651
cmp dword [esp + 0x48], 5
jne 0x49663f
mov eax, dword [esp + 0x4c]
xor edx, edx
mov ecx, dword [eax + 0xc]
call fcn.004683f0
mov dword [esp + 0x34], eax
cdq
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], edx
jmp 0x496651
xor eax, eax
xorps xmm0, xmm0
mov dword [esp + 0x34], eax
movlpd qword [esp + 0xc8], xmm0
cmp byte [edi], bl
je 0x497f42
nop dword [eax]
mov ebx, dword [esp + 0x38]
push 2
push 0x4e0b00
push edi
call fcn.004bdf03
add esp, 0xc
test eax, eax
jne 0x4966cc
mov bl, byte [edi]
mov esi, edi
test bl, bl
je 0x4966a4
mov dl, bl
mov ecx, 0x4e0204
mov al, 0xa
nop dword [eax]
cmp dl, al
je 0x4966f6
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496690
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496682
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4966b0
sub ecx, edx
add edi, ecx
mov dword [esp + 0x18], edi
cmp byte [edi], 0
je 0x497f3e
mov ebx, dword [esp + 0x38]
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x49672b
mov ecx, str._n_r_t
mov al, 0xa
nop dword [eax + eax]
cmp dl, al
je 0x496723
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4966e0
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4966d4
jmp 0x49672b
mov dword [esp + 0x18], edi
nop word [eax + eax]
mov ecx, 0x4e0204
mov al, 0xa
cmp bl, al
je 0x4966bf
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496707
mov bl, byte [edi + 1]
inc edi
mov dword [esp + 0x18], edi
test bl, bl
jne 0x496700
xor edi, edi
jmp 0x4966bb
cmp edi, esi
je 0x496992
push 0x7b
push edi
call fcn.004b87b6
add esp, 8
test eax, eax
je 0x4967ac
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4968a0
mov ecx, 0x4e0af0
mov al, 0x3b
nop dword [eax]
cmp dl, al
je 0x496769
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496750
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496746
jmp 0x4968a0
push 0x7b
push edi
call fcn.004b87b6
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x18]
mov esi, eax
mov dl, byte [eax]
test dl, dl
je 0x4967a8
mov ecx, 0x4e0af0
mov al, 0x3b
nop dword [eax]
cmp dl, al
je 0x496894
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496790
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496782
mov edi, dword [esp + 0x18]
mov dl, byte [edi]
cmp dl, 0x7d
jne 0x4969a9
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x14]
mov eax, ebx
mov ecx, dword [esp + edx*4 + 0x308]
sub eax, ecx
mov esi, dword [esp + edx*4 + 0x288]
cmp eax, esi
jle 0x4967de
mov esi, eax
mov dword [esp + edx*4 + 0x288], eax
cmp edx, 1
jle 0x496983
cmp byte [esp + edx + 0x14f], 0
je 0x496983
mov ecx, dword [esp + edx*4 + 0x2c8]
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x496812
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
mov dword [esp + 0x14], ebx
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + edx*4 + 0x2c8]
mov eax, dword [esp + 0x28]
cmp ecx, eax
cmovg eax, ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x64]
cmp esi, eax
cmovg eax, esi
sub edx, 1
mov dword [esp + 0x64], eax
mov dword [esp + 0x38], edx
jne 0x496846
add ebx, eax
mov dword [esp + 0x14], ebx
add edi, 1
mov byte [esp + 0x13], 0
mov byte [esp + 0x24], 0
mov esi, edi
mov dword [esp + 0x18], edi
je 0x496992
mov dl, byte [edi]
test dl, dl
je 0x496997
nop dword [eax]
mov ecx, 0x4e0af0
mov al, 0x3b
cmp dl, al
je 0x49698e
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496877
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496870
jmp 0x496997
cmp edi, esi
jae 0x4967a8
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov eax, ecx
inc ecx
mov dword [esp + 0x38], ecx
test eax, eax
jne 0x4968b3
mov dword [esp + 0x64], eax
push str.struct
push edi
call fcn.004b886a
add esp, 8
test eax, eax
je 0x4968e5
push str.struct
push edi
call fcn.004b886a
push 0x7b
push edi
mov esi, eax
call fcn.004b87b6
add esp, 0x10
cmp esi, eax
jae 0x4968e5
mov al, 1
jmp 0x4968e7
xor al, al
mov esi, dword [esp + 0x34]
mov byte [esp + ebx + 0x151], al
test esi, esi
jle 0x496904
mov ecx, edi
call fcn.00490420
movzx eax, al
cmp eax, esi
jg 0x49690e
mov ecx, edi
call fcn.00490420
movzx esi, al
mov ecx, dword [esp + 0x14]
mov eax, ecx
cdq
idiv esi
mov dword [esp + 0x20], esi
test edx, edx
je 0x49692c
mov eax, esi
sub eax, edx
cdq
idiv esi
add ecx, edx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x28]
cmp eax, esi
jle 0x496948
mov edx, dword [esp + 0x34]
test edx, edx
jle 0x496942
mov esi, edx
cmp eax, edx
jg 0x496944
mov esi, eax
mov dword [esp + 0x20], esi
mov dword [esp + ebx*4 + 0x30c], ecx
mov dword [esp + ebx*4 + 0x2cc], esi
mov dword [esp + ebx*4 + 0x28c], 0
xor bl, bl
push 0x7b
push edi
mov dword [esp + 0x30], 0
mov byte [esp + 0x1b], bl
mov byte [esp + 0x2c], bl
call fcn.004b87b6
add esp, 8
lea edi, [eax + 1]
jmp 0x496993
mov ebx, ecx
mov dword [esp + 0x14], ebx
jmp 0x496816
cmp edi, esi
jne 0x496997
inc edi
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 0x14]
cmp byte [edi], 0
jne 0x496660
jmp 0x497f42
xor eax, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], eax
mov esi, edi
test dl, dl
je 0x4969df
nop dword [eax]
mov ecx, 0x4e0b14
mov al, 0x7d
cmp dl, al
je 0x496a4f
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4969c7
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4969c0
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4969e4
sub ecx, edx
cmp ecx, 0x4000
ja 0x497dff
lea edx, [esp + 0x798]
mov ecx, edi
sub edx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x496a04
cmp byte [esp + 0x798], 0
je 0x496a9a
lea ecx, [esp + 0x798]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x496a25
sub ecx, edx
lea eax, [esp + ecx + 0x797]
mov cl, byte [eax]
cmp cl, 0x20
je 0x496a41
cmp cl, 9
jne 0x496a87
lea edx, [esp + 0x798]
cmp eax, edx
je 0x496a8d
dec eax
jmp 0x496a35
push 0x4e0b14
push edi
call fcn.004bf87d
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x497dff
push esi
lea eax, [esp + 0x79c]
push edi
push eax
call fcn.004be2bd
add esp, 0xc
mov byte [esp + esi + 0x798], 0
jmp 0x496a11
mov byte [eax + 1], 0
jmp 0x496a9a
cmp cl, 0x20
je 0x496a97
cmp cl, 9
jne 0x496a9a
mov byte [eax], 0
lea eax, [esp + 0x798]
push 0x2a
push eax
call fcn.004b87b6
add esp, 8
test eax, eax
je 0x496af2
lea eax, [esp + 0x798]
push 0x3a
push eax
call fcn.004b87b6
add esp, 8
test eax, eax
jne 0x497e22
push eax
push eax
push 0x4001
push 0xffffffffffffffff
push 1
push 0x4d5231
mov edx, 0x4dc1e0
lea ecx, [esp + 0x7b0]
call fcn.0049e8b0
add esp, 0x18
mov dword [esp + 0x30], eax
lea eax, [esp + 0x798]
push 0x5b
push eax
call fcn.004b87b6
add esp, 8
test eax, eax
je 0x496c4d
lea eax, [esp + 0x798]
push 0x5b
push eax
call fcn.004b87b6
push 0x14
push eax
lea eax, [esp + 0xac]
push eax
call fcn.004be2bd
add esp, 0x14
lea eax, [esp + 0x9c]
push 0x4e0b38
push eax
call fcn.004bf87d
add esp, 8
lea ecx, [esp + 0x9d]
mov byte [esp + eax + 0x9d], 0
mov al, byte [ecx]
cmp al, 0x20
je 0x496b5c
cmp al, 9
jne 0x496b5f
inc ecx
jmp 0x496b52
test al, al
je 0x496ba8
cmp al, 0x2d
je 0x496b6b
cmp al, 0x2b
jne 0x496b72
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x496ba8
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x496b81
cmp al, 0x58
jne 0x496ba8
movsx eax, byte [ecx + 2]
push eax
call fcn.004b99b0
add esp, 4
test eax, eax
je 0x496ba8
push 0x10
lea eax, [esp + 0xa1]
push 0
push eax
call fcn.004b9a3b
add esp, 0xc
jmp 0x496bb8
lea eax, [esp + 0x9d]
push eax
call fcn.004b94ac
add esp, 4
push 0
push 0
push 0x4001
push 1
push 1
push 0x4d5231
lea edx, [esp + 0xb4]
mov dword [esp + 0x44], eax
lea ecx, [esp + 0x7b0]
call fcn.0049e8b0
lea eax, [esp + 0x7b0]
push 0x5b
push eax
call fcn.004b87b6
add esp, 0x20
test eax, eax
jne 0x497e4c
mov bl, byte [esp + 0x798]
test bl, bl
je 0x496c54
lea ecx, [esp + 0x798]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x496c10
sub ecx, edx
lea eax, [esp + ecx + 0x797]
mov cl, byte [eax]
cmp cl, 0x20
je 0x496c2c
cmp cl, 9
jne 0x496c3a
lea edx, [esp + 0x798]
cmp eax, edx
je 0x496c40
dec eax
jmp 0x496c20
mov byte [eax + 1], 0
jmp 0x496c4d
cmp cl, 0x20
je 0x496c4a
cmp cl, 9
jne 0x496c54
mov byte [eax], 0
mov bl, byte [esp + 0x798]
lea esi, [esp + 0x798]
test bl, bl
je 0x496ca8
mov dl, bl
mov ecx, 0x4d9e7c
mov al, 0x20
cmp dl, al
je 0x496e67
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496c68
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496c61
lea edx, [esp + 0x798]
mov ecx, 0x4e0b14
mov al, 0x7d
nop
cmp bl, al
je 0x496e67
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496c90
mov bl, byte [edx + 1]
inc edx
test bl, bl
jne 0x496c87
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x496ccb
mov ecx, 0x4e0b14
mov al, 0x7d
cmp dl, al
je 0x496cd6
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496cb7
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496cb0
cmp dword [esp + 0x14], 0
je 0x496e67
lea ecx, [esp + 0x798]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x496ce0
sub ecx, edx
cmp ecx, 0x125
ja 0x497e4c
push 0x125
lea eax, [esp + 0x79c]
push eax
lea eax, [esp + 0x168]
push eax
call fcn.004be2bd
add esp, 0xc
lea eax, [esp + 0x160]
push 0x3a
push eax
call fcn.004b87b6
mov esi, eax
add esp, 8
test esi, esi
je 0x496db2
mov ebx, dword [esp + 0x24]
xor eax, eax
movzx ecx, bl
shr ecx, 3
mov byte [esi], 0
inc esi
cmp ecx, dword [esp + 0x3c]
mov ecx, esi
movzx ebx, bl
cmove ebx, eax
nop word [eax + eax]
mov al, byte [ecx]
cmp al, 0x20
je 0x496d5a
cmp al, 9
jne 0x496d5d
inc ecx
jmp 0x496d50
test al, al
je 0x496d9f
cmp al, 0x2d
je 0x496d69
cmp al, 0x2b
jne 0x496d70
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x496d9f
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x496d7f
cmp al, 0x58
jne 0x496d9f
movsx eax, byte [ecx + 2]
push eax
call fcn.004b99b0
add esp, 4
test eax, eax
je 0x496d9f
push 0x10
push 0
push esi
call fcn.004b9ad3
add esp, 0xc
jmp 0x496da8
push esi
call fcn.004b9548
add esp, 4
add bl, al
mov byte [esp + 0x13], al
mov dword [esp + 0x24], ebx
or esi, 0xffffffff
cmp byte [esp + 0x160], 0
je 0x496f67
lea ecx, [esp + 0x160]
nop word [eax + eax]
mov al, byte [ecx]
cmp al, 0x20
je 0x496dda
cmp al, 9
jne 0x496ddd
inc ecx
jmp 0x496dd0
mov eax, ecx
lea edx, [esp + 0x160]
sub eax, edx
je 0x496e0e
mov esi, ecx
lea edx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x496df0
sub esi, edx
lea eax, [esi + 1]
push eax
push ecx
lea eax, [esp + 0x168]
push eax
call fcn.004b4620
add esp, 0xc
cmp byte [esp + 0x160], 0
je 0x496f67
cmp esi, 0xffffffff
jne 0x496e39
lea esi, [esp + 0x160]
lea ecx, [esi + 1]
nop dword [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x496e30
sub esi, ecx
lea eax, [esp + esi + 0x15f]
mov cl, byte [eax]
cmp cl, 0x20
je 0x496e4c
cmp cl, 9
jne 0x496e5e
lea edx, [esp + 0x160]
cmp eax, edx
je 0x4971ce
dec eax
jmp 0x496e40
mov byte [eax + 1], 0
jmp 0x496f67
lea eax, [esp + 0x798]
push 0x4dc6cc
push eax
call fcn.004bf87d
mov esi, eax
add esp, 8
cmp esi, 0x218
ja 0x497e4c
lea edi, [esp + 0x798]
mov dl, byte [edi]
cmp dl, 0x20
je 0x496e9d
cmp dl, 9
jne 0x496ea0
inc edi
jmp 0x496e91
test dl, dl
je 0x496ec8
mov ecx, 0x4d9e7c
mov al, 0x20
nop dword [eax + eax]
cmp dl, al
je 0x496fd2
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496eb0
mov dl, byte [edi + 1]
inc edi
test dl, dl
jne 0x496ea4
xor edi, edi
lea ecx, [esp + 0x348]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x496ed4
sub ecx, edx
lea eax, [ecx - 2]
push eax
lea eax, [esp + 0x79c]
push eax
lea eax, [esp + 0x351]
push eax
call fcn.004b653e
add esp, 0xc
test eax, eax
je 0x496f07
mov byte [esp + 0x13], 0
mov byte [esp + 0x24], 0
push esi
lea eax, [esp + 0x79c]
push eax
lea eax, [esp + 0x351]
push eax
call fcn.004be2bd
add esp, 0xc
mov word [esp + esi + 0x349], 0x20
mov ah, byte [esp + 0x798]
lea esi, [esp + 0x798]
test ah, ah
je 0x496f5f
mov dl, ah
nop
mov ecx, 0x4e0c80
mov al, 0x20
cmp dl, al
je 0x496fe0
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496f47
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x496f40
mov byte [esp + 0x160], 0
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x2c]
cmp byte [edi + 0x14], 0
je 0x496f8d
cmp byte [esp + 0x160], 0
jne 0x496f8d
test ebx, ebx
mov eax, 1
cmove ebx, eax
mov dword [esp + 0x2c], ebx
lea eax, [esp + 0x160]
push 0x28
push eax
call fcn.004b87b6
add esp, 8
test eax, eax
jne 0x497f18
lea eax, [esp + 0x348]
push str._bool
push eax
call fcn.004b6442
add esp, 8
test eax, eax
jne 0x4971e4
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x497222
cmp byte [edi], 0x3a
je 0x496f2a
jmp 0x496eca
lea edx, [esp + 0x798]
mov bl, ah
nop dword [eax]
mov ecx, 0x4e0c80
mov al, 0x20
cmp bl, al
je 0x49700d
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x496ff7
mov bl, byte [edx + 1]
inc edx
test bl, bl
jne 0x496ff0
xor edx, edx
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x497010
sub edx, ecx
cmp edx, 0x11b
ja 0x497e4c
test edi, edi
je 0x497037
cmp byte [edi], 0x3a
jne 0x497037
lea edx, [esp + 0x798]
jmp 0x49705d
lea edx, [esp + 0x798]
nop
mov ecx, 0x4e0c80
mov al, 0x20
cmp ah, al
je 0x49705d
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x497047
mov ah, byte [edx + 1]
inc edx
test ah, ah
jne 0x497040
xor edx, edx
lea ecx, [esp + 0x160]
mov al, byte [edx]
lea edx, [edx + 1]
mov byte [ecx], al
lea ecx, [ecx + 1]
test al, al
jne 0x497064
lea eax, [esp + 0x160]
push 0x3a
push eax
call fcn.004b87b6
mov esi, eax
add esp, 8
test esi, esi
je 0x49711e
mov eax, dword [esp + 0x24]
movzx ecx, al
shr ecx, 3
movzx ebx, al
xor eax, eax
mov byte [esi], 0
inc esi
cmp ecx, dword [esp + 0x3c]
mov ecx, esi
cmove ebx, eax
nop word [eax + eax]
mov al, byte [ecx]
cmp al, 0x20
je 0x4970ba
cmp al, 9
jne 0x4970bd
inc ecx
jmp 0x4970b0
test al, al
je 0x497109
cmp al, 0x2d
je 0x4970c9
cmp al, 0x2b
jne 0x4970d0
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x497109
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x4970df
cmp al, 0x58
jne 0x497109
movsx eax, byte [ecx + 2]
push eax
call fcn.004b99b0
add esp, 4
test eax, eax
je 0x497109
push 0x10
push 0
push esi
call fcn.004b9ad3
add esp, 0xc
mov byte [esp + 0x13], al
add bl, al
mov dword [esp + 0x24], ebx
jmp 0x497128
push esi
call fcn.004b9548
add esp, 4
mov byte [esp + 0x13], al
add bl, al
mov dword [esp + 0x24], ebx
jmp 0x497128
mov byte [esp + 0x13], 0
mov byte [esp + 0x24], 0
or esi, 0xffffffff
cmp byte [esp + 0x160], 0
je 0x496f67
lea ecx, [esp + 0x160]
mov al, byte [ecx]
cmp al, 0x20
je 0x49714a
cmp al, 9
jne 0x49714d
inc ecx
jmp 0x497140
mov eax, ecx
lea edx, [esp + 0x160]
sub eax, edx
je 0x49717e
mov esi, ecx
lea edx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x497160
sub esi, edx
lea eax, [esi + 1]
push eax
push ecx
lea eax, [esp + 0x168]
push eax
call fcn.004b4620
add esp, 0xc
cmp byte [esp + 0x160], 0
je 0x496f67
cmp esi, 0xffffffff
jne 0x4971a9
lea esi, [esp + 0x160]
lea ecx, [esi + 1]
nop dword [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4971a0
sub esi, ecx
lea eax, [esp + esi + 0x15f]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4971c0
cmp cl, 9
jne 0x496e5e
lea edx, [esp + 0x160]
cmp eax, edx
je 0x4971ce
dec eax
jmp 0x4971b0
cmp cl, 0x20
je 0x4971dc
cmp cl, 9
jne 0x496f67
mov byte [eax], 0
jmp 0x496f67
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi*4 + 0x4e1904]
lea edx, [esp + 0x348]
call fcn.0049e4d0
test eax, eax
jne 0x49720f
inc esi
cmp esi, 8
jl 0x4971f0
jmp 0x497215
lea eax, [esi + 1]
movzx eax, ax
cwde
mov dword [esp + 0x3c], eax
test eax, eax
je 0x497694
cmp dword [esp + 0x30], 0
je 0x4972a5
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x49723e
cmp eax, 4
jge 0x49723e
mov esi, eax
mov dword [esp + 0x20], eax
jmp 0x497247
mov esi, 4
mov dword [esp + 0x20], esi
mov ecx, dword [esp + 0x14]
mov eax, ecx
cdq
idiv esi
test edx, edx
je 0x497261
mov eax, esi
sub eax, edx
cdq
idiv esi
add ecx, edx
mov dword [esp + 0x14], ecx
cmp esi, dword [esp + 0x28]
jle 0x49726b
mov dword [esp + 0x28], esi
xor ecx, ecx
xor ebx, ebx
xor eax, eax
or edi, 0xffffffff
xor esi, esi
mov edx, dword [esp + 0x14]
test edx, edx
je 0x4973be
mov dl, byte [esp + 0x13]
test dl, dl
je 0x4973ba
cmp byte [esp + 0x24], dl
mov edx, dword [esp + 0x14]
je 0x4973be
sub edx, dword [esp + 0x3c]
jmp 0x4973be
mov dl, byte [esp + 0x13]
test dl, dl
je 0x4972b3
cmp byte [esp + 0x24], dl
jne 0x4972df
mov ecx, dword [esp + 0x34]
test ecx, ecx
jle 0x4972c1
mov edi, ecx
cmp eax, ecx
jg 0x4972c3
mov edi, eax
mov esi, dword [esp + 0x14]
mov eax, esi
cdq
idiv edi
test edx, edx
je 0x4972d9
mov eax, edi
sub eax, edx
cdq
idiv edi
add esi, edx
mov dl, byte [esp + 0x13]
jmp 0x4972e7
mov edi, dword [esp + 0x20]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x28]
mov ecx, esi
cmp edi, eax
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], edi
cmovg eax, edi
mov dword [esp + 0x28], eax
test ebx, ebx
jne 0x49726b
mov eax, dword [esp + 0x24]
movzx esi, dl
lea edx, [esp + 0x348]
mov dword [esp + 0x14], ecx
mov ecx, str._TCHAR_LPTSTR_LPCTSTR
movzx ebx, al
mov dword [esp + 0x44], esi
sub ebx, esi
call fcn.0049e4d0
test eax, eax
je 0x497333
xor edi, edi
jmp 0x49737b
lea edx, [esp + 0x348]
mov ecx, str._LPWSTR_LPCWSTR_WCHAR
call fcn.0049e4d0
test eax, eax
je 0x49734f
mov edi, 0x4b0
jmp 0x497367
lea edx, [esp + 0x348]
mov ecx, str._CHAR_LPSTR_LPCSTR_UCHAR
call fcn.0049e4d0
neg eax
sbb edi, edi
neg edi
dec edi
mov eax, dword [esp + 0x14]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x20], esi
mov dword [esp + 0x14], eax
lea edx, [esp + 0x348]
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.0049e4d0
lea edx, [esp + 0x348]
mov ecx, str._FLOAT_DOUBLE_PFLOAT_PDOUBLE
mov esi, eax
call fcn.0049e4d0
neg eax
sbb ecx, ecx
mov eax, dword [esp + 0x44]
xor edx, edx
inc ecx
test esi, esi
sete dl
mov dword [esp + 0x40], edx
mov esi, edx
jmp 0x497276
mov edx, dword [esp + 0x14]
push ebx
mov ebx, dword [esp + 0x20]
push eax
push edi
push esi
mov esi, dword [esp + 0x3c]
lea eax, [esp + 0x7c]
push ecx
push dword [esp + 0x50]
mov ecx, ebx
push esi
push edx
push dword [esp + 0x50]
push eax
lea eax, [esp + 0x188]
push eax
call fcn.00498440
mov edi, eax
test edi, edi
je 0x497e76
mov edx, dword [esp + 0x30]
test esi, esi
jne 0x497403
test edx, edx
je 0x497658
xor ecx, ecx
mov al, byte [esp + ecx + 0x348]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x56f], al
test al, al
jne 0x497405
mov bl, byte [esp + 0x160]
test edx, edx
je 0x497484
test esi, esi
jne 0x497432
test bl, bl
jne 0x497432
lea eax, [esi + 1]
jmp 0x497434
xor eax, eax
mov esi, edx
sub esi, eax
je 0x497480
nop word [eax + eax]
lea ecx, [esp + 0x570]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x497450
sub ecx, edx
je 0x497473
nop dword [eax + eax]
mov al, byte [esp + ecx + 0x570]
mov byte [esp + ecx + 0x571], al
sub ecx, 1
jne 0x497460
mov byte [esp + 0x571], 0x2a
sub esi, 1
jne 0x497440
mov esi, dword [esp + 0x2c]
test bl, bl
je 0x4974be
test esi, esi
je 0x4974be
lea edx, [esp + 0x570]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x497496
sub edx, ecx
lea ecx, [esp + 0x9c]
mov eax, ecx
sub edx, eax
lea edx, [esp + edx + 0x570]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x4974b1
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0x570]
push 1
lea edx, [esp + 0x74]
mov dword [esp + 0x124], eax
push edx
mov ecx, dword [ebx + 0x1c]
lea edx, [esp + 0xf0]
push 0
push edx
lea edx, [esp + 0xe8]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x1c]
cmp eax, 1
jne 0x497506
mov eax, dword [esp + 0xd8]
mov dword [edi + 0x14], eax
jmp 0x497654
push 0x28
call fcn.004b3125
add esp, 4
mov dword [esp + 0x40], eax
lea edx, [esp + 0x70]
mov dword [eax + 4], 1
push 2
mov dword [eax], vtable.Struct.0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov word [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
push edx
mov dword [edi + 0x14], eax
lea edx, [esp + 0xf0]
mov dword [esp + 0x138], eax
mov eax, dword [ebx + 0x1c]
push 1
push edx
lea edx, [esp + 0xe8]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x1c]
mov eax, dword [esp + 0xd8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [edi + 0x14]
mov eax, dword [ebx + 0x1c]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov ecx, dword [edi + 0x14]
mov eax, dword [ebx + 0x20]
mov dword [ecx + 0x20], eax
cmp byte [esp + 0x160], 0
je 0x4975c9
test esi, esi
je 0x4975c9
cmp dword [esp + 0x30], 0
mov eax, 4
jne 0x4975c2
mov eax, dword [edi + 8]
mov ecx, esi
imul ecx, eax
jmp 0x4975e7
lea eax, [esp + 0x570]
push 0x2a
push eax
call fcn.004b87b6
add esp, 8
mov ecx, 4
test eax, eax
jne 0x4975e7
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0x14]
mov edx, 5
mov dword [eax + 0x18], ecx
lea eax, [esp + 0x570]
mov dword [esp + 0x58], 0
lea ecx, [esp + 0xb4]
mov dword [esp + 0x50], eax
mov dword [esp + 0x90], 3
mov eax, dword [edi + 0x14]
mov dword [esp + 0x140], eax
call fcn.00496180
test eax, eax
je 0x497e76
mov eax, dword [ebx + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [edi + 0x14]
mov dword [eax + 0x1c], 0
mov dword [esp + 0x58], 4
mov dword [esp + 0x90], 1
mov edx, dword [esp + 0x30]
mov bl, byte [esp + 0x13]
test bl, bl
je 0x49766a
cmp byte [esp + 0x24], bl
jne 0x497cc5
mov ecx, dword [esp + 0x3c]
test edx, edx
mov ebx, dword [esp + 0x14]
mov eax, 4
cmovne ecx, eax
test esi, esi
mov eax, 1
cmovne eax, esi
imul ecx, eax
add ebx, ecx
mov dword [esp + 0x14], ebx
jmp 0x497cc9
lea eax, [esp + 0x348]
mov dword [esp + 0x50], 0
push 0x28
push eax
call fcn.004b87b6
add esp, 8
test eax, eax
mov eax, dword [0x4e88cc]
je 0x4977da
mov edi, dword [eax + 0x94]
lea eax, [esp + 0x348]
push 0x4e0b68
push eax
call fcn.004bf87d
add esp, 8
dec eax
mov ecx, 0x4ed830
push 0
push eax
lea eax, [esp + 0x351]
push eax
call fcn.0042e730
mov ecx, dword [0x4e88cc]
mov dword [ecx + 0x94], eax
test eax, eax
je 0x497e85
lea esi, [esp + 0x348]
lea ecx, [esi + 1]
nop word [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x497710
lea eax, [esp + 0x348]
sub esi, ecx
push 0x4e0b68
push eax
call fcn.004bf87d
sub esi, eax
lea eax, [esp + 0x350]
push 0x4e0b68
push eax
sub esi, 3
call fcn.004bf87d
add esp, 0x10
lea ecx, [esp + 0x349]
add eax, ecx
mov ecx, 0x4ed830
push 0
push 2
push 0
push esi
push eax
call fcn.00430710
mov dword [esp + 0x50], eax
mov eax, dword [0x4e88cc]
mov dword [eax + 0x94], edi
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x4977b6
lea ecx, [esp + 0x348]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x497785
push 0
sub ecx, edx
push 1
push 0
lea eax, [ecx - 2]
mov ecx, 0x4ed830
push eax
lea eax, [esp + 0x359]
push eax
call fcn.00430710
mov dword [esp + 0x50], eax
test eax, eax
je 0x497eb5
mov ebx, dword [esp + 0x30]
test ebx, ebx
jne 0x497934
mov esi, dword [esp + 0x34]
test esi, esi
jle 0x497842
mov ecx, dword [esp + 0x58]
cmp ecx, 5
ja case.0x4977d3.1
jmp dword [ecx*4 + 0x4981b8]
cmp dword [eax + 0x94], 0
je 0x497773
lea ecx, [esp + 0x348]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4977f0
push 0
sub ecx, edx
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4ed830
push eax
lea eax, [esp + 0x359]
push eax
call fcn.00430710
mov dword [esp + 0x50], eax
jmp 0x497777
push 0
push 1
mov ecx, eax
call fcn.00401550
jmp case.0x4977d3.0
mov eax, 0x4d5231
mov ecx, eax
call fcn.00490420
movzx eax, al
cmp eax, esi
jg 0x49786e
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
cmp ecx, 5
ja case.0x49784b.1
jmp dword [ecx*4 + 0x4981d0]
push 0
push 1
mov ecx, eax
call fcn.00401550
jmp case.0x49784b.0
mov eax, 0x4d5231
mov ecx, eax
call fcn.00490420
movzx esi, al
mov ecx, dword [esp + 0x28]
cmp esi, ecx
mov al, byte [esp + 0x13]
cmovg ecx, esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x28], ecx
test al, al
je 0x49788d
cmp byte [esp + 0x24], al
jne 0x4978ad
mov edi, dword [esp + 0x14]
test edi, edi
je 0x4978b1
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x4978b1
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add edi, edx
mov dword [esp + 0x14], edi
jmp 0x4978b1
mov edi, dword [esp + 0x14]
mov eax, edi
cdq
mov dword [esp + 0x110], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x114], edx
cdq
mov dword [esp + 0x88], eax
lea eax, [esp + 0xb4]
push 4
push eax
lea eax, [esp + 0x80]
mov dword [esp + 0x94], edx
push eax
lea eax, [esp + 0x74]
push eax
call fcn.00490690
add esp, 0x10
cmp dword [esp + 0x80], 1
jne 0x497edb
mov al, byte [esp + 0x13]
test al, al
je 0x497914
cmp byte [esp + 0x24], al
jne 0x4979b2
mov ecx, dword [esp + 0x28]
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x4979b2
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add edi, edx
mov dword [esp + 0x14], edi
jmp 0x4979b2
push 1
lea eax, [esp + 0xb8]
xorps xmm0, xmm0
push eax
lea eax, [esp + 0x80]
movlpd qword [esp + 0x118], xmm0
push eax
lea eax, [esp + 0x74]
push eax
call fcn.00490690
add esp, 0x10
cmp dword [esp + 0x80], 1
jne 0x497eb5
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x497982
cmp eax, 4
jge 0x497982
mov esi, eax
mov dword [esp + 0x20], eax
jmp 0x49798b
mov esi, 4
mov dword [esp + 0x20], esi
mov edi, dword [esp + 0x14]
mov eax, edi
cdq
idiv esi
test edx, edx
je 0x4979a5
mov eax, esi
sub eax, edx
cdq
idiv esi
add edi, edx
mov dword [esp + 0x14], edi
mov eax, dword [esp + 0x28]
cmp esi, eax
cmovg eax, esi
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x2c]
xor ecx, ecx
push 0
push 0
push 0xffff
push 0
test ebx, ebx
mov eax, edi
push 0
cmovne eax, ecx
mov ecx, dword [esp + 0x8c]
sub ecx, eax
lea eax, [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x34]
push esi
push edi
push ebx
push eax
lea eax, [esp + 0x188]
push eax
call fcn.00498440
mov edi, eax
test edi, edi
je 0x497f05
xor edx, edx
nop
mov cl, byte [esp + edx + 0x348]
lea edx, [edx + 1]
mov byte [esp + edx + 0x56f], cl
test cl, cl
jne 0x497a00
test ebx, ebx
mov bl, byte [esp + 0x160]
je 0x497a84
test esi, esi
jne 0x497a2d
test bl, bl
jne 0x497a2d
lea eax, [esi + 1]
jmp 0x497a2f
xor eax, eax
mov esi, dword [esp + 0x30]
sub esi, eax
je 0x497a80
nop word [eax + eax]
lea ecx, [esp + 0x570]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x497a50
sub ecx, edx
je 0x497a73
nop dword [eax + eax]
mov al, byte [esp + ecx + 0x570]
mov byte [esp + ecx + 0x571], al
sub ecx, 1
jne 0x497a60
mov byte [esp + 0x571], 0x2a
sub esi, 1
jne 0x497a40
mov esi, dword [esp + 0x2c]
test bl, bl
je 0x497abe
test esi, esi
je 0x497abe
lea edx, [esp + 0x570]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x497a96
sub edx, ecx
lea ecx, [esp + 0x9c]
mov eax, ecx
sub edx, eax
lea edx, [esp + edx + 0x570]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x497ab1
mov ebx, dword [esp + 0x1c]
lea eax, [esp + 0x570]
push 1
lea edx, [esp + 0x74]
mov dword [esp + 0x124], eax
push edx
mov ecx, dword [ebx + 0x1c]
lea edx, [esp + 0xf0]
push 0
push edx
lea edx, [esp + 0xe8]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x1c]
cmp eax, 1
jne 0x497b06
mov eax, dword [esp + 0xd8]
mov dword [edi + 0x14], eax
jmp 0x497c71
push 0x28
call fcn.004b3125
add esp, 4
mov dword [esp + 0x40], eax
lea edx, [esp + 0x70]
mov dword [eax + 4], 1
push 2
mov dword [eax], vtable.Struct.0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov word [eax + 0x14], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
push edx
mov dword [edi + 0x14], eax
lea edx, [esp + 0xf0]
mov dword [esp + 0x138], eax
mov eax, dword [ebx + 0x1c]
push 1
push edx
lea edx, [esp + 0xe8]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x1c]
mov ecx, dword [edi + 0x14]
mov eax, dword [ebx + 0x1c]
mov dword [ecx + 0x1c], eax
mov eax, dword [ebx + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov ecx, dword [edi + 0x14]
mov eax, dword [ebx + 0x20]
mov dword [ecx + 0x20], eax
cmp byte [esp + 0x160], 0
je 0x497bba
test esi, esi
je 0x497bba
cmp dword [esp + 0x30], 0
mov ecx, 4
jne 0x497bb5
mov ecx, dword [edi + 8]
imul ecx, esi
jmp 0x497bd8
lea eax, [esp + 0x570]
push 0x2a
push eax
call fcn.004b87b6
add esp, 8
mov ecx, 4
test eax, eax
jne 0x497bd8
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0x14]
push 0x2a
mov dword [eax + 0x18], ecx
lea eax, [esp + 0x574]
push eax
call fcn.004b87b6
add esp, 8
test eax, eax
jne 0x497c0a
lea eax, [esp + 0x570]
push 0x5b
push eax
call fcn.004b87b6
add esp, 8
test eax, eax
je 0x497c1d
lea eax, [esp + 0x570]
mov dword [esp + 0x58], 0
mov dword [esp + 0x50], eax
mov dword [esp + 0x90], 3
lea ecx, [esp + 0xb4]
mov eax, dword [edi + 0x14]
mov edx, 5
mov dword [esp + 0x140], eax
call fcn.00496180
test eax, eax
je 0x497e76
mov eax, dword [ebx + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [edi + 0x14]
mov dword [eax + 0x1c], 0
mov dword [esp + 0x58], 4
mov dword [esp + 0x90], 1
cmp dword [esp + 0x30], 0
je 0x497c8f
mov ebx, dword [esp + 0x14]
test esi, esi
mov eax, 1
cmovne eax, esi
lea ebx, [ebx + eax*4]
mov dword [esp + 0x14], ebx
jmp 0x497cc9
mov bl, byte [esp + 0x13]
test bl, bl
je 0x497c9d
cmp byte [esp + 0x24], bl
jne 0x497cc5
mov edx, dword [esp + 0x78]
test esi, esi
je 0x497cba
mov ecx, edx
lea eax, [esi - 1]
sub ecx, dword [esp + 0x14]
imul ecx, eax
lea ebx, [ecx + edx]
mov dword [esp + 0x14], ebx
jmp 0x497cc9
xor ecx, ecx
lea ebx, [ecx + edx]
mov dword [esp + 0x14], ebx
jmp 0x497cc9
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
test edx, edx
je 0x497d06
mov ecx, dword [esp + edx*4 + 0x308]
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0x288]
jle 0x497cec
mov dword [esp + edx*4 + 0x288], eax
cmp byte [esp + edx + 0x150], 0
jne 0x497d06
mov ebx, ecx
mov byte [esp + 0x24], 0
mov dword [esp + 0x14], ebx
mov byte [esp + 0x13], 0
mov edi, dword [esp + 0x18]
push 0x7d
push edi
call fcn.004b87b6
add esp, 8
test eax, eax
je 0x497d88
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x497dcc
mov ecx, 0x4e0af0
mov al, 0x3b
nop dword [eax]
cmp dl, al
je 0x497d49
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x497d30
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x497d25
jmp 0x497dcc
push 0x7d
push edi
call fcn.004b87b6
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x18]
mov esi, eax
mov dl, byte [eax]
test dl, dl
je 0x497d84
mov ecx, 0x4e0af0
mov al, 0x3b
nop dword [eax]
cmp dl, al
je 0x497dc4
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x497d70
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x497d62
mov edi, dword [esp + 0x18]
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x497dab
mov ecx, 0x4e0af0
mov al, 0x3b
cmp dl, al
je 0x497de5
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x497d97
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x497d90
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x497db0
sub ecx, edx
add edi, ecx
mov dword [esp + 0x18], edi
jmp 0x49699b
cmp edi, esi
jae 0x497d84
mov edi, dword [esp + 0x18]
push 0x4d5bbc
push edi
call fcn.004bf87d
add esp, 8
add edi, eax
mov dword [esp + 0x18], edi
jmp 0x49699b
push 0x4e0af0
push edi
call fcn.004bf87d
inc edi
add esp, 8
add edi, eax
mov dword [esp + 0x18], edi
jmp 0x49699b
mov ecx, dword [esp + 0x1c]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push edi
push str.Invalid_structure_definition.
mov ecx, 0x4ed830
call fcn.0043ed90
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 + 0x798]
mov ecx, 0x4ed830
push eax
push str.Bit_field_must_not_be_a_pointer
call fcn.0043ed90
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 + 0x798]
mov ecx, 0x4ed830
push eax
push str.Invalid_structure_definition.
call fcn.0043ed90
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]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov dword [ecx + 0x94], edi
mov ecx, dword [esp + 0x1c]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x348]
mov ecx, 0x4ed830
push eax
push str.Variable_was_not_found_in_function.
call fcn.0043ed90
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]
lea eax, [esp + 0x348]
mov ecx, 0x4ed830
push eax
push str.Invalid_structure_definition.
call fcn.0043ed90
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 + 0x348]
mov ecx, 0x4ed830
push eax
push str.Invalid_structure_definition.
call fcn.0043ed90
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 eax, dword [edi]
push edi
call dword [eax + 8]
lea eax, [esp + 0x160]
mov ecx, 0x4ed830
push eax
push str.Invalid_structure_definition.
call fcn.0043ed90
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x497f5c
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x497f5c
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
test ebx, ebx
jne 0x497f8a
mov ecx, dword [esp + 0x1c]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x497f7c.1
jmp dword [ecx*4 + 0x4981e8]
mov eax, dword [eax]
jmp 0x496403
mov edi, dword [esp + 0x1c]
cmp dword [edi + 0x18], ebx
je 0x49800b
mov eax, dword [edi]
push edi
call dword [eax + 8]
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x497fa7.1
jmp dword [ecx*4 + 0x498200]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401550
push eax
push str.Invalid_structure_Length.
mov ecx, 0x4ed830
call fcn.0043ed90
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [eax]
mov ecx, 0x4ed830
push eax
push str.Invalid_structure_Length.
call fcn.0043ed90
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4d5231
mov ecx, 0x4ed830
push eax
push str.Invalid_structure_Length.
call fcn.0043ed90
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [edi + 0x14], 0
je 0x498112
mov eax, dword [edi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [edi + 0xc], 1
jg 0x498056
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x18]
cmp byte [eax], 0
jne 0x498056
mov dword [edi + 0x1c], 0
cmp dword [esp + 0x48], 2
jle 0x498112
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 8]
mov ecx, dword [eax + 8]
cmp ecx, 6
jne 0x498077
mov edx, dword [eax]
mov eax, edx
jmp 0x4980a3
push 0
push 0
mov ecx, edi
call fcn.00498230
mov dword [edi + 0x1c], eax
test eax, eax
jne 0x498036
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
cmp ecx, 4
jne 0x498112
mov eax, dword [eax]
mov dl, byte [eax + 0x17]
test dl, dl
jne 0x49808e
mov esi, dword [eax + 0xc]
jmp 0x498090
mov esi, eax
test byte [esi + 0x15], 2
je 0x4980fb
test dl, dl
jne 0x49809f
mov edx, dword [eax + 0xc]
jmp 0x4980a1
mov edx, eax
mov edx, dword [edx]
test edx, edx
je 0x498112
cmp ecx, 6
je 0x4980f1
cmp ecx, 4
jne 0x4980ef
mov cl, byte [eax + 0x17]
test cl, cl
jne 0x4980bd
mov edx, dword [eax + 0xc]
jmp 0x4980bf
mov edx, eax
test byte [edx + 0x15], 2
je 0x4980d8
test cl, cl
jne 0x4980cc
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov ecx, edi
push eax
call fcn.00498570
jmp 0x498112
test cl, cl
jne 0x4980e1
mov ecx, dword [eax + 0xc]
jmp 0x4980e3
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x4980ef
push eax
call fcn.0043f490
xor eax, eax
push eax
mov ecx, edi
call fcn.00498570
jmp 0x498112
test dl, dl
jne 0x498104
mov ecx, dword [eax + 0xc]
jmp 0x498106
mov ecx, eax
test byte [ecx + 0x15], 4
je 0x498112
push eax
call fcn.0043f490
cmp dword [edi + 0xc], 1
jne 0x498138
mov ecx, dword [edi + 8]
cmp dword [ecx + 0x18], 0
je 0x498138
cmp word [ecx + 4], 0
jne 0x498138
cmp dword [ecx + 0x10], 0
jne 0x498138
cmp dword [ecx + 0x14], 0
jne 0x498138
mov byte [edi + 0x15], 1
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x498151.1
jmp dword [ecx*4 + 0x498218]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401550
jmp 0x49816e
mov eax, dword [eax]
jmp 0x49816e
mov eax, 0x4d5231
push eax
push str.Out_of_memory.
mov ecx, 0x4ed830
call fcn.0043ed90
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret