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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x4794
call fcn.004db810
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.004c22a0
add esp, 0xc
lea eax, [esp + 0x288]
push 0x40
push ebx
push eax
call fcn.004c22a0
add esp, 0xc
lea eax, [esp + 0x2c8]
xorps xmm0, xmm0
movaps xmmword [esp + 0x150], xmm0
push 0x40
push ebx
push eax
call fcn.004c22a0
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 [0x4f02c0]
mov word [esp + 0x34c], ax
mov al, byte [0x4f02c2]
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.004c22a0
add esp, 0xc
mov byte [esp + 0x13], bl
cmp dword [esp + 0x48], 4
mov byte [esp + 0x24], bl
mov dword [esp + 0x6c], ebx
jle 0x4a3c11
mov eax, dword [edi + 0x10]
mov esi, dword [eax]
mov dword [esp + 0x1c], esi
jmp 0x4a3d69
mov ecx, dword [edi]
call fcn.00477330
test eax, eax
je 0x4a3c39
push 0x4e3371
push str.Invalid_structure_definition.
mov ecx, 0x4fda88
call fcn.0044dd10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x28
call fcn.004c0946
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 0x4a5989
push 1
push edi
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x74]
push eax
call fcn.0049dff0
add esp, 0x10
cmp dword [esp + 0x80], 1
je 0x4a3d00
mov eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a585c.1
jmp dword [ecx*4 + 0x4a59d0]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401670
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4fda88
call fcn.0044dd10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4e3371
push eax
push str.Invalid_structure_definition.
mov ecx, 0x4fda88
call fcn.0044dd10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x20
call fcn.004c0946
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 0x4a3d58
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.00476f70
or eax, edx
je 0x4a3d58
mov ecx, dword [edi + 4]
xor edx, edx
call fcn.00476f70
jmp 0x4a3d66
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.0x4a3d9a.1
jmp dword [ecx*4 + 0x4a59e8]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401670
mov edi, eax
mov dword [esp + 0x18], eax
jmp 0x4a3dc1
mov edi, dword [eax]
jmp 0x4a3dbd
mov edi, 0x4e3371
mov dword [esp + 0x18], edi
mov ecx, edi
mov al, byte [ecx]
cmp al, 0x20
je 0x4a3dcd
cmp al, 9
jne 0x4a3dd0
inc ecx
jmp 0x4a3dc3
test al, al
je 0x4a3e18
cmp al, 0x2d
je 0x4a3ddc
cmp al, 0x2b
jne 0x4a3de3
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x4a3e18
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x4a3df2
cmp al, 0x58
jne 0x4a3e18
movsx eax, byte [ecx + 2]
push eax
call fcn.004c4410
add esp, 4
test eax, eax
je 0x4a3e18
push 0x10
push 0
push edi
call fcn.004c4d25
mov esi, eax
add esp, 0xc
mov dword [esp + 0x34], esi
jmp 0x4a3e27
push edi
call fcn.004c4df6
add esp, 4
mov dword [esp + 0x34], eax
mov esi, eax
mov eax, dword [0x4f898c]
cmp byte [eax + 0xd5], 0x44
jne 0x4a3e4c
push 0xa
lea eax, [esp + 0x100]
push eax
push esi
call fcn.004c3fb8
add esp, 0xc
mov ecx, eax
jmp 0x4a3eb5
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.004c3fb8
mov eax, dword [0x4f898c]
add esp, 0xc
cmp byte [eax + 0xd5], 0x48
jne 0x4a3eaa
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 0x4a3eb8
sub ecx, edx
cmp byte [ecx + edi], 0x3a
jne 0x4a3ef8
test esi, esi
jle 0x4a3ef8
lea ecx, [esp + 0xfc]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a3ed5
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 0x4a3f34
cmp dword [esp + 0x48], 5
jne 0x4a3f22
mov eax, dword [esp + 0x4c]
xor edx, edx
mov ecx, dword [eax + 0xc]
call fcn.00476f70
mov dword [esp + 0x34], eax
cdq
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], edx
jmp 0x4a3f34
xor eax, eax
xorps xmm0, xmm0
mov dword [esp + 0x34], eax
movlpd qword [esp + 0xc8], xmm0
cmp byte [edi], bl
je 0x4a5822
nop dword [eax]
mov ebx, dword [esp + 0x38]
push 2
push 0x4f02c4
push edi
call fcn.004cc747
add esp, 0xc
test eax, eax
jne 0x4a3fac
mov bl, byte [edi]
mov esi, edi
test bl, bl
je 0x4a3f84
mov dl, bl
mov ecx, 0x4efa5c
mov al, 0xa
nop dword [eax]
cmp dl, al
je 0x4a3fd6
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a3f70
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a3f62
mov ecx, edi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a3f90
sub ecx, edx
add edi, ecx
mov dword [esp + 0x18], edi
cmp byte [edi], 0
je 0x4a581e
mov ebx, dword [esp + 0x38]
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4a400b
mov ecx, str._n_r_t
mov al, 0xa
nop dword [eax + eax]
cmp dl, al
je 0x4a4003
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a3fc0
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a3fb4
jmp 0x4a400b
mov dword [esp + 0x18], edi
nop word [eax + eax]
mov ecx, 0x4efa5c
mov al, 0xa
cmp bl, al
je 0x4a3f9f
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a3fe7
mov bl, byte [edi + 1]
inc edi
mov dword [esp + 0x18], edi
test bl, bl
jne 0x4a3fe0
xor edi, edi
jmp 0x4a3f9b
cmp edi, esi
je 0x4a4272
push 0x7b
push edi
call fcn.004ca733
add esp, 8
test eax, eax
je 0x4a408c
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4a4180
mov ecx, 0x4f02b4
mov al, 0x3b
nop dword [eax]
cmp dl, al
je 0x4a4049
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4030
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4026
jmp 0x4a4180
push 0x7b
push edi
call fcn.004ca733
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x18]
mov esi, eax
mov dl, byte [eax]
test dl, dl
je 0x4a4088
mov ecx, 0x4f02b4
mov al, 0x3b
nop dword [eax]
cmp dl, al
je 0x4a4174
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4070
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4062
mov edi, dword [esp + 0x18]
mov dl, byte [edi]
cmp dl, 0x7d
jne 0x4a4289
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 0x4a40be
mov esi, eax
mov dword [esp + edx*4 + 0x288], eax
cmp edx, 1
jle 0x4a4263
cmp byte [esp + edx + 0x14f], 0
je 0x4a4263
mov ecx, dword [esp + edx*4 + 0x2c8]
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x4a40f2
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 0x4a4126
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 0x4a4272
mov dl, byte [edi]
test dl, dl
je 0x4a4277
nop dword [eax]
mov ecx, 0x4f02b4
mov al, 0x3b
cmp dl, al
je 0x4a426e
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4157
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4150
jmp 0x4a4277
cmp edi, esi
jae 0x4a4088
mov edi, dword [esp + 0x18]
mov ecx, dword [esp + 0x38]
mov eax, ecx
inc ecx
mov dword [esp + 0x38], ecx
test eax, eax
jne 0x4a4193
mov dword [esp + 0x64], eax
push str.struct
push edi
call fcn.004cac80
add esp, 8
test eax, eax
je 0x4a41c5
push str.struct
push edi
call fcn.004cac80
push 0x7b
push edi
mov esi, eax
call fcn.004ca733
add esp, 0x10
cmp esi, eax
jae 0x4a41c5
mov al, 1
jmp 0x4a41c7
xor al, al
mov esi, dword [esp + 0x34]
mov byte [esp + ebx + 0x151], al
test esi, esi
jle 0x4a41e4
mov ecx, edi
call fcn.0049dd80
movzx eax, al
cmp eax, esi
jg 0x4a41ee
mov ecx, edi
call fcn.0049dd80
movzx esi, al
mov ecx, dword [esp + 0x14]
mov eax, ecx
cdq
idiv esi
mov dword [esp + 0x20], esi
test edx, edx
je 0x4a420c
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 0x4a4228
mov edx, dword [esp + 0x34]
test edx, edx
jle 0x4a4222
mov esi, edx
cmp eax, edx
jg 0x4a4224
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.004ca733
add esp, 8
lea edi, [eax + 1]
jmp 0x4a4273
mov ebx, ecx
mov dword [esp + 0x14], ebx
jmp 0x4a40f6
cmp edi, esi
jne 0x4a4277
inc edi
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 0x14]
cmp byte [edi], 0
jne 0x4a3f40
jmp 0x4a5822
xor eax, eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], eax
mov esi, edi
test dl, dl
je 0x4a42bf
nop dword [eax]
mov ecx, 0x4f02d8
mov al, 0x7d
cmp dl, al
je 0x4a432f
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a42a7
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a42a0
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a42c4
sub ecx, edx
cmp ecx, 0x4000
ja 0x4a56df
lea edx, [esp + 0x798]
mov ecx, edi
sub edx, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [ecx + edx - 1], al
test al, al
jne 0x4a42e4
cmp byte [esp + 0x798], 0
je 0x4a437a
lea ecx, [esp + 0x798]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a4305
sub ecx, edx
lea eax, [esp + ecx + 0x797]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4a4321
cmp cl, 9
jne 0x4a4367
lea edx, [esp + 0x798]
cmp eax, edx
je 0x4a436d
dec eax
jmp 0x4a4315
push 0x4f02d8
push edi
call fcn.004cdfaf
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x4a56df
push esi
lea eax, [esp + 0x79c]
push edi
push eax
call fcn.004cc87f
add esp, 0xc
mov byte [esp + esi + 0x798], 0
jmp 0x4a42f1
mov byte [eax + 1], 0
jmp 0x4a437a
cmp cl, 0x20
je 0x4a4377
cmp cl, 9
jne 0x4a437a
mov byte [eax], 0
lea eax, [esp + 0x798]
push 0x2a
push eax
call fcn.004ca733
add esp, 8
test eax, eax
je 0x4a43d2
lea eax, [esp + 0x798]
push 0x3a
push eax
call fcn.004ca733
add esp, 8
test eax, eax
jne 0x4a5702
push eax
push eax
push 0x4001
push 0xffffffffffffffff
push 1
push 0x4e3371
mov edx, 0x4eb984
lea ecx, [esp + 0x7b0]
call fcn.004ac240
add esp, 0x18
mov dword [esp + 0x30], eax
lea eax, [esp + 0x798]
push 0x5b
push eax
call fcn.004ca733
add esp, 8
test eax, eax
je 0x4a452d
lea eax, [esp + 0x798]
push 0x5b
push eax
call fcn.004ca733
push 0x14
push eax
lea eax, [esp + 0xac]
push eax
call fcn.004cc87f
add esp, 0x14
lea eax, [esp + 0x9c]
push 0x4f02fc
push eax
call fcn.004cdfaf
add esp, 8
lea ecx, [esp + 0x9d]
mov byte [esp + eax + 0x9d], 0
mov al, byte [ecx]
cmp al, 0x20
je 0x4a443c
cmp al, 9
jne 0x4a443f
inc ecx
jmp 0x4a4432
test al, al
je 0x4a4488
cmp al, 0x2d
je 0x4a444b
cmp al, 0x2b
jne 0x4a4452
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x4a4488
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x4a4461
cmp al, 0x58
jne 0x4a4488
movsx eax, byte [ecx + 2]
push eax
call fcn.004c4410
add esp, 4
test eax, eax
je 0x4a4488
push 0x10
lea eax, [esp + 0xa1]
push 0
push eax
call fcn.004c4c8d
add esp, 0xc
jmp 0x4a4498
lea eax, [esp + 0x9d]
push eax
call fcn.004c4db1
add esp, 4
push 0
push 0
push 0x4001
push 1
push 1
push 0x4e3371
lea edx, [esp + 0xb4]
mov dword [esp + 0x44], eax
lea ecx, [esp + 0x7b0]
call fcn.004ac240
lea eax, [esp + 0x7b0]
push 0x5b
push eax
call fcn.004ca733
add esp, 0x20
test eax, eax
jne 0x4a572c
mov bl, byte [esp + 0x798]
test bl, bl
je 0x4a4534
lea ecx, [esp + 0x798]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a44f0
sub ecx, edx
lea eax, [esp + ecx + 0x797]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4a450c
cmp cl, 9
jne 0x4a451a
lea edx, [esp + 0x798]
cmp eax, edx
je 0x4a4520
dec eax
jmp 0x4a4500
mov byte [eax + 1], 0
jmp 0x4a452d
cmp cl, 0x20
je 0x4a452a
cmp cl, 9
jne 0x4a4534
mov byte [eax], 0
mov bl, byte [esp + 0x798]
lea esi, [esp + 0x798]
test bl, bl
je 0x4a4588
mov dl, bl
mov ecx, 0x4e902c
mov al, 0x20
cmp dl, al
je 0x4a4747
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4548
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4541
lea edx, [esp + 0x798]
mov ecx, 0x4f02d8
mov al, 0x7d
nop
cmp bl, al
je 0x4a4747
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4570
mov bl, byte [edx + 1]
inc edx
test bl, bl
jne 0x4a4567
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4a45ab
mov ecx, 0x4f02d8
mov al, 0x7d
cmp dl, al
je 0x4a45b6
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4597
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4590
cmp dword [esp + 0x14], 0
je 0x4a4747
lea ecx, [esp + 0x798]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a45c0
sub ecx, edx
cmp ecx, 0x125
ja 0x4a572c
push 0x125
lea eax, [esp + 0x79c]
push eax
lea eax, [esp + 0x168]
push eax
call fcn.004cc87f
add esp, 0xc
lea eax, [esp + 0x160]
push 0x3a
push eax
call fcn.004ca733
mov esi, eax
add esp, 8
test esi, esi
je 0x4a4692
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 0x4a463a
cmp al, 9
jne 0x4a463d
inc ecx
jmp 0x4a4630
test al, al
je 0x4a467f
cmp al, 0x2d
je 0x4a4649
cmp al, 0x2b
jne 0x4a4650
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x4a467f
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x4a465f
cmp al, 0x58
jne 0x4a467f
movsx eax, byte [ecx + 2]
push eax
call fcn.004c4410
add esp, 4
test eax, eax
je 0x4a467f
push 0x10
push 0
push esi
call fcn.004c4d25
add esp, 0xc
jmp 0x4a4688
push esi
call fcn.004c4df6
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 0x4a4847
lea ecx, [esp + 0x160]
nop word [eax + eax]
mov al, byte [ecx]
cmp al, 0x20
je 0x4a46ba
cmp al, 9
jne 0x4a46bd
inc ecx
jmp 0x4a46b0
mov eax, ecx
lea edx, [esp + 0x160]
sub eax, edx
je 0x4a46ee
mov esi, ecx
lea edx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x4a46d0
sub esi, edx
lea eax, [esi + 1]
push eax
push ecx
lea eax, [esp + 0x168]
push eax
call fcn.004c2440
add esp, 0xc
cmp byte [esp + 0x160], 0
je 0x4a4847
cmp esi, 0xffffffff
jne 0x4a4719
lea esi, [esp + 0x160]
lea ecx, [esi + 1]
nop dword [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4a4710
sub esi, ecx
lea eax, [esp + esi + 0x15f]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4a472c
cmp cl, 9
jne 0x4a473e
lea edx, [esp + 0x160]
cmp eax, edx
je 0x4a4aae
dec eax
jmp 0x4a4720
mov byte [eax + 1], 0
jmp 0x4a4847
lea eax, [esp + 0x798]
push 0x4ebed4
push eax
call fcn.004cdfaf
mov esi, eax
add esp, 8
cmp esi, 0x218
ja 0x4a572c
lea edi, [esp + 0x798]
mov dl, byte [edi]
cmp dl, 0x20
je 0x4a477d
cmp dl, 9
jne 0x4a4780
inc edi
jmp 0x4a4771
test dl, dl
je 0x4a47a8
mov ecx, 0x4e902c
mov al, 0x20
nop dword [eax + eax]
cmp dl, al
je 0x4a48b2
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4790
mov dl, byte [edi + 1]
inc edi
test dl, dl
jne 0x4a4784
xor edi, edi
lea ecx, [esp + 0x348]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a47b4
sub ecx, edx
lea eax, [ecx - 2]
push eax
lea eax, [esp + 0x79c]
push eax
lea eax, [esp + 0x351]
push eax
call fcn.004c4e4b
add esp, 0xc
test eax, eax
je 0x4a47e7
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.004cc87f
add esp, 0xc
mov word [esp + esi + 0x349], 0x20
mov ah, byte [esp + 0x798]
lea esi, [esp + 0x798]
test ah, ah
je 0x4a483f
mov dl, ah
nop
mov ecx, 0x4f0444
mov al, 0x20
cmp dl, al
je 0x4a48c0
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4827
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a4820
mov byte [esp + 0x160], 0
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x2c]
cmp byte [edi + 0x14], 0
je 0x4a486d
cmp byte [esp + 0x160], 0
jne 0x4a486d
test ebx, ebx
mov eax, 1
cmove ebx, eax
mov dword [esp + 0x2c], ebx
lea eax, [esp + 0x160]
push 0x28
push eax
call fcn.004ca733
add esp, 8
test eax, eax
jne 0x4a57f8
lea eax, [esp + 0x348]
push str._bool
push eax
call fcn.004c4262
add esp, 8
test eax, eax
jne 0x4a4ac4
mov eax, 1
mov dword [esp + 0x3c], eax
jmp 0x4a4b02
cmp byte [edi], 0x3a
je 0x4a480a
jmp 0x4a47aa
lea edx, [esp + 0x798]
mov bl, ah
nop dword [eax]
mov ecx, 0x4f0444
mov al, 0x20
cmp bl, al
je 0x4a48ed
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a48d7
mov bl, byte [edx + 1]
inc edx
test bl, bl
jne 0x4a48d0
xor edx, edx
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4a48f0
sub edx, ecx
cmp edx, 0x11b
ja 0x4a572c
test edi, edi
je 0x4a4917
cmp byte [edi], 0x3a
jne 0x4a4917
lea edx, [esp + 0x798]
jmp 0x4a493d
lea edx, [esp + 0x798]
nop
mov ecx, 0x4f0444
mov al, 0x20
cmp ah, al
je 0x4a493d
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a4927
mov ah, byte [edx + 1]
inc edx
test ah, ah
jne 0x4a4920
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 0x4a4944
lea eax, [esp + 0x160]
push 0x3a
push eax
call fcn.004ca733
mov esi, eax
add esp, 8
test esi, esi
je 0x4a49fe
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 0x4a499a
cmp al, 9
jne 0x4a499d
inc ecx
jmp 0x4a4990
test al, al
je 0x4a49e9
cmp al, 0x2d
je 0x4a49a9
cmp al, 0x2b
jne 0x4a49b0
lea eax, [ecx + 1]
mov ecx, eax
mov al, byte [eax]
cmp al, 0x30
jne 0x4a49e9
mov al, byte [ecx + 1]
cmp al, 0x78
je 0x4a49bf
cmp al, 0x58
jne 0x4a49e9
movsx eax, byte [ecx + 2]
push eax
call fcn.004c4410
add esp, 4
test eax, eax
je 0x4a49e9
push 0x10
push 0
push esi
call fcn.004c4d25
add esp, 0xc
mov byte [esp + 0x13], al
add bl, al
mov dword [esp + 0x24], ebx
jmp 0x4a4a08
push esi
call fcn.004c4df6
add esp, 4
mov byte [esp + 0x13], al
add bl, al
mov dword [esp + 0x24], ebx
jmp 0x4a4a08
mov byte [esp + 0x13], 0
mov byte [esp + 0x24], 0
or esi, 0xffffffff
cmp byte [esp + 0x160], 0
je 0x4a4847
lea ecx, [esp + 0x160]
mov al, byte [ecx]
cmp al, 0x20
je 0x4a4a2a
cmp al, 9
jne 0x4a4a2d
inc ecx
jmp 0x4a4a20
mov eax, ecx
lea edx, [esp + 0x160]
sub eax, edx
je 0x4a4a5e
mov esi, ecx
lea edx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x4a4a40
sub esi, edx
lea eax, [esi + 1]
push eax
push ecx
lea eax, [esp + 0x168]
push eax
call fcn.004c2440
add esp, 0xc
cmp byte [esp + 0x160], 0
je 0x4a4847
cmp esi, 0xffffffff
jne 0x4a4a89
lea esi, [esp + 0x160]
lea ecx, [esi + 1]
nop dword [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4a4a80
sub esi, ecx
lea eax, [esp + esi + 0x15f]
mov cl, byte [eax]
cmp cl, 0x20
je 0x4a4aa0
cmp cl, 9
jne 0x4a473e
lea edx, [esp + 0x160]
cmp eax, edx
je 0x4a4aae
dec eax
jmp 0x4a4a90
cmp cl, 0x20
je 0x4a4abc
cmp cl, 9
jne 0x4a4847
mov byte [eax], 0
jmp 0x4a4847
xor esi, esi
nop word [eax + eax]
mov ecx, dword [esi*4 + 0x4f10e4]
lea edx, [esp + 0x348]
call fcn.004abe60
test eax, eax
jne 0x4a4aef
inc esi
cmp esi, 8
jl 0x4a4ad0
jmp 0x4a4af5
lea eax, [esi + 1]
movzx eax, ax
cwde
mov dword [esp + 0x3c], eax
test eax, eax
je 0x4a4f74
cmp dword [esp + 0x30], 0
je 0x4a4b85
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x4a4b1e
cmp eax, 4
jge 0x4a4b1e
mov esi, eax
mov dword [esp + 0x20], eax
jmp 0x4a4b27
mov esi, 4
mov dword [esp + 0x20], esi
mov ecx, dword [esp + 0x14]
mov eax, ecx
cdq
idiv esi
test edx, edx
je 0x4a4b41
mov eax, esi
sub eax, edx
cdq
idiv esi
add ecx, edx
mov dword [esp + 0x14], ecx
cmp esi, dword [esp + 0x28]
jle 0x4a4b4b
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 0x4a4c9e
mov dl, byte [esp + 0x13]
test dl, dl
je 0x4a4c9a
cmp byte [esp + 0x24], dl
mov edx, dword [esp + 0x14]
je 0x4a4c9e
sub edx, dword [esp + 0x3c]
jmp 0x4a4c9e
mov dl, byte [esp + 0x13]
test dl, dl
je 0x4a4b93
cmp byte [esp + 0x24], dl
jne 0x4a4bbf
mov ecx, dword [esp + 0x34]
test ecx, ecx
jle 0x4a4ba1
mov edi, ecx
cmp eax, ecx
jg 0x4a4ba3
mov edi, eax
mov esi, dword [esp + 0x14]
mov eax, esi
cdq
idiv edi
test edx, edx
je 0x4a4bb9
mov eax, edi
sub eax, edx
cdq
idiv edi
add esi, edx
mov dl, byte [esp + 0x13]
jmp 0x4a4bc7
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 0x4a4b4b
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.004abe60
test eax, eax
je 0x4a4c13
xor edi, edi
jmp 0x4a4c5b
lea edx, [esp + 0x348]
mov ecx, str._LPWSTR_LPCWSTR_WCHAR
call fcn.004abe60
test eax, eax
je 0x4a4c2f
mov edi, 0x4b0
jmp 0x4a4c47
lea edx, [esp + 0x348]
mov ecx, str._CHAR_LPSTR_LPCSTR_UCHAR
call fcn.004abe60
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.004abe60
lea edx, [esp + 0x348]
mov ecx, str._FLOAT_DOUBLE_PFLOAT_PDOUBLE
mov esi, eax
call fcn.004abe60
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 0x4a4b56
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.004a5c90
mov edi, eax
test edi, edi
je 0x4a5756
mov edx, dword [esp + 0x30]
test esi, esi
jne 0x4a4ce3
test edx, edx
je 0x4a4f38
xor ecx, ecx
mov al, byte [esp + ecx + 0x348]
lea ecx, [ecx + 1]
mov byte [esp + ecx + 0x56f], al
test al, al
jne 0x4a4ce5
mov bl, byte [esp + 0x160]
test edx, edx
je 0x4a4d64
test esi, esi
jne 0x4a4d12
test bl, bl
jne 0x4a4d12
lea eax, [esi + 1]
jmp 0x4a4d14
xor eax, eax
mov esi, edx
sub esi, eax
je 0x4a4d60
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 0x4a4d30
sub ecx, edx
je 0x4a4d53
nop dword [eax + eax]
mov al, byte [esp + ecx + 0x570]
mov byte [esp + ecx + 0x571], al
sub ecx, 1
jne 0x4a4d40
mov byte [esp + 0x571], 0x2a
sub esi, 1
jne 0x4a4d20
mov esi, dword [esp + 0x2c]
test bl, bl
je 0x4a4d9e
test esi, esi
je 0x4a4d9e
lea edx, [esp + 0x570]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4a4d76
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 0x4a4d91
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 0x4a4de6
mov eax, dword [esp + 0xd8]
mov dword [edi + 0x14], eax
jmp 0x4a4f34
push 0x28
call fcn.004c0946
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 0x4a4ea9
test esi, esi
je 0x4a4ea9
cmp dword [esp + 0x30], 0
mov eax, 4
jne 0x4a4ea2
mov eax, dword [edi + 8]
mov ecx, esi
imul ecx, eax
jmp 0x4a4ec7
lea eax, [esp + 0x570]
push 0x2a
push eax
call fcn.004ca733
add esp, 8
mov ecx, 4
test eax, eax
jne 0x4a4ec7
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.004a3aa0
test eax, eax
je 0x4a5756
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 0x4a4f4a
cmp byte [esp + 0x24], bl
jne 0x4a55a5
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 0x4a55a9
lea eax, [esp + 0x348]
mov dword [esp + 0x50], 0
push 0x28
push eax
call fcn.004ca733
add esp, 8
test eax, eax
mov eax, dword [0x4f898c]
je 0x4a50ba
mov edi, dword [eax + 0x94]
lea eax, [esp + 0x348]
push 0x4f032c
push eax
call fcn.004cdfaf
add esp, 8
dec eax
mov ecx, 0x4fda88
push 0
push eax
lea eax, [esp + 0x351]
push eax
call fcn.0043cf80
mov ecx, dword [0x4f898c]
mov dword [ecx + 0x94], eax
test eax, eax
je 0x4a5765
lea esi, [esp + 0x348]
lea ecx, [esi + 1]
nop word [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x4a4ff0
lea eax, [esp + 0x348]
sub esi, ecx
push 0x4f032c
push eax
call fcn.004cdfaf
sub esi, eax
lea eax, [esp + 0x350]
push 0x4f032c
push eax
sub esi, 3
call fcn.004cdfaf
add esp, 0x10
lea ecx, [esp + 0x349]
add eax, ecx
mov ecx, 0x4fda88
push 0
push 2
push 0
push esi
push eax
call fcn.0043eed0
mov dword [esp + 0x50], eax
mov eax, dword [0x4f898c]
mov dword [eax + 0x94], edi
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
test eax, eax
jne 0x4a5096
lea ecx, [esp + 0x348]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a5065
push 0
sub ecx, edx
push 1
push 0
lea eax, [ecx - 2]
mov ecx, 0x4fda88
push eax
lea eax, [esp + 0x359]
push eax
call fcn.0043eed0
mov dword [esp + 0x50], eax
test eax, eax
je 0x4a5795
mov ebx, dword [esp + 0x30]
test ebx, ebx
jne 0x4a5214
mov esi, dword [esp + 0x34]
test esi, esi
jle 0x4a5122
mov ecx, dword [esp + 0x58]
cmp ecx, 5
ja case.0x4a50b3.1
jmp dword [ecx*4 + 0x4a5a00]
cmp dword [eax + 0x94], 0
je 0x4a5053
lea ecx, [esp + 0x348]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a50d0
push 0
sub ecx, edx
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x4fda88
push eax
lea eax, [esp + 0x359]
push eax
call fcn.0043eed0
mov dword [esp + 0x50], eax
jmp 0x4a5057
push 0
push 1
mov ecx, eax
call fcn.00401670
jmp case.0x4a50b3.0
mov eax, 0x4e3371
mov ecx, eax
call fcn.0049dd80
movzx eax, al
cmp eax, esi
jg 0x4a514e
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x58]
cmp ecx, 5
ja case.0x4a512b.1
jmp dword [ecx*4 + 0x4a5a18]
push 0
push 1
mov ecx, eax
call fcn.00401670
jmp case.0x4a512b.0
mov eax, 0x4e3371
mov ecx, eax
call fcn.0049dd80
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 0x4a516d
cmp byte [esp + 0x24], al
jne 0x4a518d
mov edi, dword [esp + 0x14]
test edi, edi
je 0x4a5191
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x4a5191
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add edi, edx
mov dword [esp + 0x14], edi
jmp 0x4a5191
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.0049dff0
add esp, 0x10
cmp dword [esp + 0x80], 1
jne 0x4a57bb
mov al, byte [esp + 0x13]
test al, al
je 0x4a51f4
cmp byte [esp + 0x24], al
jne 0x4a5292
mov ecx, dword [esp + 0x28]
mov eax, edi
cdq
idiv ecx
test edx, edx
je 0x4a5292
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add edi, edx
mov dword [esp + 0x14], edi
jmp 0x4a5292
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.0049dff0
add esp, 0x10
cmp dword [esp + 0x80], 1
jne 0x4a5795
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x4a5262
cmp eax, 4
jge 0x4a5262
mov esi, eax
mov dword [esp + 0x20], eax
jmp 0x4a526b
mov esi, 4
mov dword [esp + 0x20], esi
mov edi, dword [esp + 0x14]
mov eax, edi
cdq
idiv esi
test edx, edx
je 0x4a5285
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.004a5c90
mov edi, eax
test edi, edi
je 0x4a57e5
xor edx, edx
nop
mov cl, byte [esp + edx + 0x348]
lea edx, [edx + 1]
mov byte [esp + edx + 0x56f], cl
test cl, cl
jne 0x4a52e0
test ebx, ebx
mov bl, byte [esp + 0x160]
je 0x4a5364
test esi, esi
jne 0x4a530d
test bl, bl
jne 0x4a530d
lea eax, [esi + 1]
jmp 0x4a530f
xor eax, eax
mov esi, dword [esp + 0x30]
sub esi, eax
je 0x4a5360
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 0x4a5330
sub ecx, edx
je 0x4a5353
nop dword [eax + eax]
mov al, byte [esp + ecx + 0x570]
mov byte [esp + ecx + 0x571], al
sub ecx, 1
jne 0x4a5340
mov byte [esp + 0x571], 0x2a
sub esi, 1
jne 0x4a5320
mov esi, dword [esp + 0x2c]
test bl, bl
je 0x4a539e
test esi, esi
je 0x4a539e
lea edx, [esp + 0x570]
lea ecx, [edx + 1]
mov al, byte [edx]
inc edx
test al, al
jne 0x4a5376
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 0x4a5391
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 0x4a53e6
mov eax, dword [esp + 0xd8]
mov dword [edi + 0x14], eax
jmp 0x4a5551
push 0x28
call fcn.004c0946
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 0x4a549a
test esi, esi
je 0x4a549a
cmp dword [esp + 0x30], 0
mov ecx, 4
jne 0x4a5495
mov ecx, dword [edi + 8]
imul ecx, esi
jmp 0x4a54b8
lea eax, [esp + 0x570]
push 0x2a
push eax
call fcn.004ca733
add esp, 8
mov ecx, 4
test eax, eax
jne 0x4a54b8
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.004ca733
add esp, 8
test eax, eax
jne 0x4a54ea
lea eax, [esp + 0x570]
push 0x5b
push eax
call fcn.004ca733
add esp, 8
test eax, eax
je 0x4a54fd
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.004a3aa0
test eax, eax
je 0x4a5756
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 0x4a556f
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 0x4a55a9
mov bl, byte [esp + 0x13]
test bl, bl
je 0x4a557d
cmp byte [esp + 0x24], bl
jne 0x4a55a5
mov edx, dword [esp + 0x78]
test esi, esi
je 0x4a559a
mov ecx, edx
lea eax, [esi - 1]
sub ecx, dword [esp + 0x14]
imul ecx, eax
lea ebx, [edx + ecx]
mov dword [esp + 0x14], ebx
jmp 0x4a55a9
xor ecx, ecx
lea ebx, [edx + ecx]
mov dword [esp + 0x14], ebx
jmp 0x4a55a9
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4a55e6
mov ecx, dword [esp + edx*4 + 0x308]
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0x288]
jle 0x4a55cc
mov dword [esp + edx*4 + 0x288], eax
cmp byte [esp + edx + 0x150], 0
jne 0x4a55e6
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.004ca733
add esp, 8
test eax, eax
je 0x4a5668
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4a56ac
mov ecx, 0x4f02b4
mov al, 0x3b
nop dword [eax]
cmp dl, al
je 0x4a5629
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a5610
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a5605
jmp 0x4a56ac
push 0x7d
push edi
call fcn.004ca733
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x18]
mov esi, eax
mov dl, byte [eax]
test dl, dl
je 0x4a5664
mov ecx, 0x4f02b4
mov al, 0x3b
nop dword [eax]
cmp dl, al
je 0x4a56a4
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a5650
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a5642
mov edi, dword [esp + 0x18]
mov dl, byte [edi]
mov esi, edi
test dl, dl
je 0x4a568b
mov ecx, 0x4f02b4
mov al, 0x3b
cmp dl, al
je 0x4a56c5
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4a5677
mov dl, byte [esi + 1]
inc esi
test dl, dl
jne 0x4a5670
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4a5690
sub ecx, edx
add edi, ecx
mov dword [esp + 0x18], edi
jmp 0x4a427b
cmp edi, esi
jae 0x4a5664
mov edi, dword [esp + 0x18]
push 0x4e7f10
push edi
call fcn.004cdfaf
add esp, 8
add edi, eax
mov dword [esp + 0x18], edi
jmp 0x4a427b
push 0x4f02b4
push edi
call fcn.004cdfaf
inc edi
add esp, 8
add edi, eax
mov dword [esp + 0x18], edi
jmp 0x4a427b
mov ecx, dword [esp + 0x1c]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push edi
push str.Invalid_structure_definition.
mov ecx, 0x4fda88
call fcn.0044dd10
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, 0x4fda88
push eax
push str.Bit_field_must_not_be_a_pointer
call fcn.0044dd10
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, 0x4fda88
push eax
push str.Invalid_structure_definition.
call fcn.0044dd10
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, 0x4fda88
push eax
push str.Variable_was_not_found_in_function.
call fcn.0044dd10
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, 0x4fda88
push eax
push str.Invalid_structure_definition.
call fcn.0044dd10
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, 0x4fda88
push eax
push str.Invalid_structure_definition.
call fcn.0044dd10
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, 0x4fda88
push eax
push str.Invalid_structure_definition.
call fcn.0044dd10
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 0x4a583c
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x4a583c
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
test ebx, ebx
jne 0x4a586a
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.0x4a585c.1
jmp dword [ecx*4 + 0x4a5a30]
mov eax, dword [eax]
jmp 0x4a3ce7
mov esi, dword [esp + 0x1c]
cmp dword [esi + 0x18], ebx
je 0x4a58eb
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [esp + 0x4c]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a5887.1
jmp dword [ecx*4 + 0x4a5a48]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401670
push eax
push str.Invalid_structure_Length.
mov ecx, 0x4fda88
call fcn.0044dd10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [eax]
mov ecx, 0x4fda88
push eax
push str.Invalid_structure_Length.
call fcn.0044dd10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4e3371
mov ecx, 0x4fda88
push eax
push str.Invalid_structure_Length.
call fcn.0044dd10
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi + 0x14], 0
je 0x4a5939
mov eax, dword [esi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [esi + 0xc], 1
jg 0x4a5968
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x18]
cmp byte [eax], 0
jne 0x4a5968
mov dword [esi + 0x1c], 0
cmp dword [esp + 0x48], 2
jle 0x4a5939
mov ebx, dword [esp + 0x4c]
mov ecx, dword [ebx + 8]
call fcn.00477330
test eax, eax
je 0x4a5939
mov ecx, dword [ebx + 8]
call fcn.00477330
push eax
mov ecx, esi
call fcn.004a5dc0
cmp dword [esi + 0xc], 1
jne 0x4a595f
mov ecx, dword [esi + 8]
cmp dword [ecx + 0x18], 0
je 0x4a595f
cmp word [ecx + 4], 0
jne 0x4a595f
cmp dword [ecx + 0x10], 0
jne 0x4a595f
cmp dword [ecx + 0x14], 0
jne 0x4a595f
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.004a5a80
mov dword [esi + 0x1c], eax
test eax, eax
jne 0x4a5912
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 eax, dword [edi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a5999.1
jmp dword [ecx*4 + 0x4a5a60]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401670
jmp 0x4a59b6
mov eax, dword [eax]
jmp 0x4a59b6
mov eax, 0x4e3371
push eax
push str.Out_of_memory.
mov ecx, 0x4fda88
call fcn.0044dd10
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret