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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x8d34
call fcn.004e88a0
push ebx
push esi
push edi
xor ebx, ebx
mov dword [esp + 0x54], ecx
push 0x40
lea eax, [esp + 0x21c]
mov dword [esp + 0x20], ebx
mov edi, edx
push ebx
push eax
mov dword [esp + 0x84], edi
call fcn.004cc590
add esp, 0xc
lea eax, [esp + 0x198]
push 0x40
push ebx
push eax
call fcn.004cc590
add esp, 0xc
lea eax, [esp + 0x1d8]
xorps xmm0, xmm0
movaps xmmword [esp + 0x130], xmm0
push 0x40
push ebx
push eax
call fcn.004cc590
xor eax, eax
movq xmm0, qword [str._UInt]
mov dword [esp + 0x78], eax
add esp, 0xc
mov dword [esp + 0x4c], eax
xor esi, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x50], eax
lea eax, [esp + 0x58]
mov dword [esp + 0xac], eax
lea eax, [esp + 0xf0]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0x98]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xc0]
mov dword [esp + 0xb8], eax
lea eax, [esp + 0x120]
mov dword [esp + 0xbc], eax
lea eax, [esp + 0x100]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x110]
mov dword [esp + 0x84], eax
mov eax, dword [0x512c3c]
mov dword [esp + 0x4b0], eax
mov ax, word [0x512c40]
push 0x436
mov word [esp + 0x4b8], ax
lea eax, [esp + 0x4ba]
push esi
push eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x80], 1
mov dword [esp + 0x6c], 4
mov dword [esp + 0x104], 1
mov dword [esp + 0xac], 1
mov dword [esp + 0xd4], 1
mov dword [esp + 0x134], 6
movq qword [esp + 0x4b4], xmm0
call fcn.004cc590
mov esi, dword [esp + 0x60]
add esp, 0xc
mov byte [esp + 0x1b], bl
mov byte [esp + 0x28], bl
mov dword [esp + 0x7c], ebx
cmp edi, 4
jle 0x4a6044
mov eax, dword [esi + 0x10]
mov edi, dword [eax]
mov dword [esp + 0x24], edi
jmp 0x4a6259
mov ecx, dword [esi]
call fcn.0047a7c0
test eax, eax
je 0x4a606c
push 0x4f03e8
push str.Invalid_structure_definition.
mov ecx, 0x520c68
call fcn.0044ddc0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x28
call fcn.004ca856
mov edi, eax
add esp, 4
mov dword [esp + 0x24], edi
mov dword [esp + 0x40], edi
push 0
push 0
push 0
mov dword [edi + 4], 1
mov dword [edi], vtable.Struct.0
mov dword [edi + 8], ebx
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], ebx
mov word [edi + 0x14], bx
mov dword [edi + 0x18], ebx
mov dword [edi + 0x20], ebx
mov dword [edi + 0x24], ebx
call dword [sym.imp.KERNEL32.dll_HeapCreate]
mov dword [edi + 0x20], eax
mov byte [edi + 0x14], 1
test eax, eax
je 0x4a7f67
push 1
push esi
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x80]
push eax
call fcn.0049fb80
add esp, 0x10
cmp dword [esp + 0x90], 1
je 0x4a6136
mov eax, dword [esi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a7e39.1
jmp dword [ecx*4 + 0x4a7fb0]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401630
push eax
push str.Invalid_structure_definition.
mov ecx, 0x520c68
call fcn.0044ddc0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4f03e8
push eax
push str.Invalid_structure_definition.
mov ecx, 0x520c68
call fcn.0044ddc0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x20
call fcn.004ca856
add esp, 4
mov dword [esp + 0x40], eax
cmp dword [esp + 0x78], 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 [edi + 0x1c], eax
mov eax, dword [esp + 0x88]
mov dword [edi + 0x18], eax
jle case.0x4a6187.6
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 8]
dec eax
cmp eax, 5
ja case.0x4a6187.3
jmp dword [eax*4 + 0x4a7fc8]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
jmp 0x4a61c0
mov edx, dword [ecx + 4]
test edx, edx
je case.0x4a6187.3
mov eax, dword [edx]
mov edx, dword [edx + 4]
jmp 0x4a61c0
movsd xmm0, qword [ecx]
call fcn.004e8db0
jmp 0x4a61c0
mov ecx, dword [ecx]
push 0
call fcn.00429ab0
jmp 0x4a61c0
mov ecx, dword [ecx]
call fcn.00405350
or eax, edx
je case.0x4a6187.6
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 8]
dec eax
cmp eax, 5
ja case.0x4a61d4.3
jmp dword [eax*4 + 0x4a7fe0]
mov esi, dword [ecx]
mov dword [edi + 0x24], esi
mov esi, dword [esp + 0x54]
jmp 0x4a6259
mov eax, dword [ecx + 4]
test eax, eax
je case.0x4a61d4.3
mov esi, dword [eax]
mov dword [edi + 0x24], esi
mov esi, dword [esp + 0x54]
jmp 0x4a6259
movsd xmm0, qword [ecx]
call fcn.004e8db0
mov esi, eax
mov dword [edi + 0x24], esi
mov esi, dword [esp + 0x54]
jmp 0x4a6259
mov ecx, dword [ecx]
push 0
call fcn.00429ab0
mov esi, eax
mov dword [edi + 0x24], esi
mov esi, dword [esp + 0x54]
jmp 0x4a6259
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov esi, dword [esp + 0x40]
mov dword [edi + 0x24], esi
mov esi, dword [esp + 0x54]
jmp 0x4a6259
mov ecx, dword [ecx]
call fcn.00405350
mov esi, eax
mov dword [edi + 0x24], esi
mov esi, dword [esp + 0x54]
jmp 0x4a6259
push dword [edi + 0x18]
push 8
push dword [edi + 0x20]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [edi + 0x24], eax
mov dword [esp + 0x108], ebx
mov dword [esp + 0x118], 6
mov dword [esp + 0xe8], 6
mov eax, dword [edi + 0x1c]
mov dword [esp + 0xe0], eax
mov eax, dword [esi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a628a.1
jmp dword [ecx*4 + 0x4a7ff8]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401630
mov edi, eax
mov dword [esp + 0x20], eax
jmp 0x4a62b1
mov edi, dword [eax]
jmp 0x4a62ad
mov edi, 0x4f03e8
mov dword [esp + 0x20], edi
mov ecx, edi
call fcn.00419340
mov edx, eax
mov eax, dword [0x51b98c]
mov dword [esp + 0x34], edx
mov ecx, edx
cmp byte [eax + 0xf5], 0x44
jne 0x4a62e5
push 0xa
lea eax, [esp + 0x174]
push eax
push edx
call fcn.004ce3a5
add esp, 0xc
mov ecx, eax
jmp 0x4a6339
lea esi, [esp + 0x170]
test edx, edx
jns 0x4a6308
mov eax, 0x2d
lea esi, [esp + 0x172]
mov ecx, edx
mov word [esp + 0x170], ax
neg ecx
mov dword [esi], 0x780030
add esi, 4
push 0x10
push esi
push ecx
call fcn.004ce3a5
mov eax, dword [0x51b98c]
add esp, 0xc
cmp byte [eax + 0xf5], 0x48
jne 0x4a6332
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
lea ecx, [esp + 0x170]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a6340
sub ecx, edx
sar ecx, 1
cmp word [edi + ecx*2], 0x3a
jne 0x4a639f
mov esi, dword [esp + 0x34]
test esi, esi
jle 0x4a639f
lea ecx, [esp + 0x170]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a6370
sub ecx, edx
mov eax, esi
sar ecx, 1
cdq
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
lea edi, [edi + ecx*2]
add edi, 2
mov dword [esp + 0x20], edi
jmp 0x4a6480
cmp dword [esp + 0x78], 5
jne 0x4a646e
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 8]
dec eax
cmp eax, 5
ja case.0x4a63be.3
jmp dword [eax*4 + 0x4a8010]
mov esi, dword [ecx]
mov eax, esi
cdq
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
jmp 0x4a647c
mov eax, dword [ecx + 4]
test eax, eax
je case.0x4a63be.3
mov esi, dword [eax]
mov eax, esi
cdq
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
jmp 0x4a647c
movsd xmm0, qword [ecx]
call fcn.004e8db0
mov esi, eax
cdq
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
jmp 0x4a647c
mov ecx, dword [ecx]
push 0
call fcn.00429ab0
mov esi, eax
cdq
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
jmp 0x4a647c
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
mov esi, dword [esp + 0x40]
mov eax, esi
cdq
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
jmp 0x4a647c
mov ecx, dword [ecx]
call fcn.00405350
mov esi, eax
cdq
mov dword [esp + 0xc0], eax
mov dword [esp + 0xc4], edx
jmp 0x4a647c
xorps xmm0, xmm0
xor esi, esi
movlpd qword [esp + 0xc0], xmm0
mov dword [esp + 0x34], esi
cmp word [edi], bx
je 0x4a7dff
nop dword [eax]
mov ebx, dword [esp + 0x4c]
push 2
push 0x512c44
push edi
call fcn.004d9d9e
add esp, 0xc
test eax, eax
jne 0x4a6520
mov esi, edi
movzx edi, word [edi]
test di, di
je 0x4a64f1
mov eax, edi
nop dword [eax]
nop dword [eax + eax]
movzx edx, ax
mov ecx, 0x511d84
mov eax, 0xa
nop dword [eax]
cmp dx, ax
je 0x4a655f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a64d0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a64c0
mov edi, dword [esp + 0x20]
mov ecx, edi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a6500
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
mov dword [esp + 0x20], edi
cmp word [edi], 0
je 0x4a7dfb
movzx eax, word [edi]
mov esi, edi
test ax, ax
je 0x4a65b9
nop
movzx edx, ax
mov ecx, str._n_r_t
mov eax, 0xa
nop dword [eax]
cmp dx, ax
je 0x4a65b1
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a6540
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6530
jmp 0x4a65b9
mov esi, dword [esp + 0x20]
mov eax, edi
mov dword [esp + 0x20], esi
nop dword [eax]
movzx edx, ax
mov ecx, 0x511d84
mov eax, 0xa
nop dword [eax]
cmp dx, ax
je 0x4a65a8
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a6580
movzx eax, word [esi + 2]
add esi, 2
mov dword [esp + 0x20], esi
test ax, ax
jne 0x4a6570
xor edi, edi
jmp 0x4a6512
mov edi, dword [esp + 0x20]
jmp 0x4a6516
cmp edi, esi
je 0x4a6864
push 0x7b
push edi
call fcn.004cbd94
add esp, 8
test eax, eax
je 0x4a6665
movzx eax, word [edi]
mov esi, edi
test ax, ax
je 0x4a6772
nop word [eax + eax]
movzx edx, ax
mov ecx, 0x512c24
mov eax, 0x3b
nop dword [eax]
cmp dx, ax
je 0x4a6612
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a65f0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a65e0
jmp 0x4a6772
push 0x7b
push edi
call fcn.004cbd94
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x20]
mov esi, eax
movzx ecx, word [eax]
test cx, cx
je 0x4a6661
nop dword [eax]
movzx edx, cx
mov eax, 0x3b
mov ecx, 0x512c24
nop dword [eax]
cmp dx, ax
je 0x4a6766
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a6640
movzx ecx, word [esi + 2]
add esi, 2
test cx, cx
jne 0x4a6630
mov edi, dword [esp + 0x20]
movzx eax, word [edi]
cmp eax, 0x7d
jne 0x4a687e
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x1c]
mov eax, ebx
mov ecx, dword [esp + edx*4 + 0x218]
sub eax, ecx
mov esi, dword [esp + edx*4 + 0x198]
cmp eax, esi
jle 0x4a6698
mov esi, eax
mov dword [esp + edx*4 + 0x198], eax
cmp edx, 1
jle 0x4a6855
cmp byte [esp + edx + 0x12f], 0
je 0x4a6855
mov ecx, dword [esp + edx*4 + 0x1d8]
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x4a66cc
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
mov dword [esp + 0x1c], ebx
mov edx, dword [esp + 0x4c]
mov ecx, dword [esp + edx*4 + 0x1d8]
mov eax, dword [esp + 0x30]
cmp ecx, eax
cmovg eax, ecx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x6c]
cmp esi, eax
cmovg eax, esi
sub edx, 1
mov dword [esp + 0x6c], eax
mov dword [esp + 0x4c], edx
jne 0x4a6700
add ebx, eax
mov dword [esp + 0x1c], ebx
add edi, 2
mov byte [esp + 0x1b], 0
mov byte [esp + 0x28], 0
mov esi, edi
mov dword [esp + 0x20], edi
je 0x4a6864
movzx eax, word [edi]
test ax, ax
je 0x4a686b
nop word [eax + eax]
movzx edx, ax
mov ecx, 0x512c24
mov eax, 0x3b
nop dword [eax]
cmp dx, ax
je 0x4a6860
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a6740
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6730
jmp 0x4a686b
cmp edi, esi
jae 0x4a6661
mov edi, dword [esp + 0x20]
mov ecx, dword [esp + 0x4c]
mov eax, ecx
inc ecx
mov dword [esp + 0x4c], ecx
test eax, eax
jne 0x4a6785
mov dword [esp + 0x6c], eax
push str.struct
push edi
call fcn.004cc1fb
add esp, 8
test eax, eax
je 0x4a67b7
push str.struct
push edi
call fcn.004cc1fb
push 0x7b
push edi
mov esi, eax
call fcn.004cbd94
add esp, 0x10
cmp esi, eax
jae 0x4a67b7
mov al, 1
jmp 0x4a67b9
xor al, al
mov esi, dword [esp + 0x34]
mov byte [esp + ebx + 0x131], al
test esi, esi
jle 0x4a67d6
mov ecx, edi
call fcn.0049f830
movzx eax, al
cmp eax, esi
jg 0x4a67e0
mov ecx, edi
call fcn.0049f830
movzx esi, al
mov ecx, dword [esp + 0x1c]
mov eax, ecx
cdq
idiv esi
mov dword [esp + 0x2c], esi
test edx, edx
je 0x4a67fe
mov eax, esi
sub eax, edx
cdq
idiv esi
add ecx, edx
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x30]
cmp eax, esi
jle 0x4a681a
mov edx, dword [esp + 0x34]
test edx, edx
jle 0x4a6814
mov esi, edx
cmp eax, edx
jg 0x4a6816
mov esi, eax
mov dword [esp + 0x2c], esi
push 0x7b
push edi
mov dword [esp + ebx*4 + 0x1e4], esi
mov dword [esp + 0x38], 0
mov dword [esp + ebx*4 + 0x224], ecx
mov dword [esp + ebx*4 + 0x1a4], 0
mov byte [esp + 0x23], 0
mov byte [esp + 0x30], 0
call fcn.004cbd94
add esp, 8
lea edi, [eax + 2]
jmp 0x4a6867
mov ebx, ecx
mov dword [esp + 0x1c], ebx
jmp 0x4a66d0
cmp edi, esi
jne 0x4a686b
add edi, 2
mov dword [esp + 0x20], edi
mov ebx, dword [esp + 0x1c]
cmp word [edi], 0
jne 0x4a6490
jmp 0x4a7dff
xor ecx, ecx
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], ecx
mov esi, edi
test ax, ax
je 0x4a68c1
movzx edx, ax
mov ecx, 0x512c68
mov eax, 0x7d
cmp dx, ax
je 0x4a6955
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a68a0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6893
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a68c6
sub ecx, edx
sar ecx, 1
cmp ecx, 0x4000
ja 0x4a7cbc
lea edx, [esp + 0xd38]
mov ecx, edi
sub edx, edi
nop dword [eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4a68f0
cmp word [esp + 0xd38], 0
je 0x4a69a9
lea ecx, [esp + 0xd38]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a6920
sub ecx, edx
sar ecx, 1
lea eax, [esp + ecx*2 + 0xd36]
movzx ecx, word [eax]
mov edx, ecx
cmp ecx, 0x20
je 0x4a6945
cmp ecx, 9
jne 0x4a6992
lea ecx, [esp + 0xd38]
cmp eax, ecx
je 0x4a699a
sub eax, 2
jmp 0x4a6936
push 0x512c68
push edi
call fcn.004db593
mov esi, eax
add esp, 8
cmp esi, 0x4000
ja 0x4a7cbc
push esi
lea eax, [esp + 0xd3c]
push edi
push eax
call fcn.004d95fc
add esp, 0xc
xor eax, eax
mov word [esp + esi*2 + 0xd38], ax
jmp 0x4a6900
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x4a69a9
cmp edx, 0x20
je 0x4a69a4
cmp edx, 9
jne 0x4a69a9
xor ecx, ecx
mov word [eax], cx
lea eax, [esp + 0xd38]
push 0x2a
push eax
call fcn.004cbd94
add esp, 8
test eax, eax
je 0x4a6a01
lea eax, [esp + 0xd38]
push 0x3a
push eax
call fcn.004cbd94
add esp, 8
test eax, eax
jne 0x4a7cdf
push eax
push eax
push 0x4001
push 0xffffffffffffffff
push 1
push 0x4f03e8
mov edx, 0x50a9a4
lea ecx, [esp + 0xd50]
call fcn.004aff30
add esp, 0x18
mov dword [esp + 0x38], eax
lea eax, [esp + 0xd38]
push 0x5b
push eax
call fcn.004cbd94
add esp, 8
test eax, eax
je 0x4a6b0e
push 0x14
lea eax, [esp + 0xd3c]
push 0x5b
push eax
call fcn.004cbd94
add esp, 8
push eax
lea eax, [esp + 0x148]
push eax
call fcn.004d95fc
add esp, 0xc
lea eax, [esp + 0x140]
push 0x512cac
push eax
call fcn.004db593
xor ecx, ecx
mov word [esp + eax*2 + 0x14a], cx
lea ecx, [esp + 0x14a]
call fcn.00405350
push 0
push 0
push 0x4001
push 1
push 1
push 0x4f03e8
lea edx, [esp + 0x160]
mov dword [esp + 0x5c], eax
lea ecx, [esp + 0xd58]
call fcn.004aff30
lea eax, [esp + 0xd58]
push 0x5b
push eax
call fcn.004cbd94
add esp, 0x28
test eax, eax
jne 0x4a7d09
mov di, word [esp + 0xd38]
test di, di
je 0x4a6b16
lea ecx, [esp + 0xd38]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a6ac2
sub ecx, edx
sar ecx, 1
lea eax, [esp + ecx*2 + 0xd36]
movzx ecx, word [eax]
mov edx, ecx
cmp ecx, 0x20
je 0x4a6ae7
cmp ecx, 9
jne 0x4a6af7
lea ecx, [esp + 0xd38]
cmp eax, ecx
je 0x4a6aff
sub eax, 2
jmp 0x4a6ad8
xor ecx, ecx
mov word [eax + 2], cx
jmp 0x4a6b0e
cmp edx, 0x20
je 0x4a6b09
cmp edx, 9
jne 0x4a6b16
xor ecx, ecx
mov word [eax], cx
mov di, word [esp + 0xd38]
lea esi, [esp + 0xd38]
test di, di
je 0x4a6ba1
movzx eax, di
nop dword [eax]
movzx edx, ax
mov ecx, 0x506dbc
mov eax, 0x20
nop dword [eax]
cmp dx, ax
je 0x4a6c76
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a6b40
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6b30
lea esi, [esp + 0xd38]
movzx eax, di
nop dword [eax + eax]
movzx edx, ax
mov ecx, 0x512c68
mov eax, 0x7d
nop dword [eax]
cmp dx, ax
je 0x4a6c76
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a6b80
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6b70
mov eax, dword [esp + 0x20]
mov esi, eax
movzx eax, word [eax]
test ax, ax
je 0x4a6bdd
nop
movzx edx, ax
mov ecx, 0x512c68
mov eax, 0x7d
nop dword [eax]
cmp dx, ax
je 0x4a6be8
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a6bc0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6bb0
cmp dword [esp + 0x1c], 0
je 0x4a6c76
lea ecx, [esp + 0xd38]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a6bf2
sub ecx, edx
sar ecx, 1
cmp ecx, 0x125
ja 0x4a7d09
push 0x125
lea eax, [esp + 0xd3c]
push eax
lea eax, [esp + 0x260]
push eax
call fcn.004d95fc
add esp, 0xc
lea eax, [esp + 0x258]
push 0x3a
push eax
call fcn.004cbd94
add esp, 8
test eax, eax
je 0x4a6f6a
mov ebx, dword [esp + 0x28]
xor ecx, ecx
mov word [eax], cx
xor edx, edx
movzx ecx, bl
shr ecx, 3
cmp ecx, dword [esp + 0x50]
lea ecx, [eax + 2]
movzx ebx, bl
cmove ebx, edx
call fcn.00419340
add bl, al
mov byte [esp + 0x1b], al
mov dword [esp + 0x28], ebx
jmp 0x4a6f6a
lea eax, [esp + 0xd38]
push 0x50b350
push eax
call fcn.004db593
mov esi, eax
add esp, 8
cmp esi, 0x218
ja 0x4a7d09
lea edi, [esp + 0xd38]
movzx ecx, word [edi]
mov edx, ecx
cmp ecx, 0x20
je 0x4a6caf
cmp ecx, 9
jne 0x4a6cb4
add edi, 2
jmp 0x4a6ca0
test dx, dx
je 0x4a6cf1
mov eax, edx
nop dword [eax + eax]
movzx edx, ax
mov ecx, 0x506dbc
mov eax, 0x20
nop dword [eax]
cmp dx, ax
je 0x4a6e41
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a6cd0
movzx eax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4a6cc0
xor edi, edi
lea ecx, [esp + 0x4a8]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a6d00
sub ecx, edx
sar ecx, 1
lea eax, [ecx - 2]
push eax
lea eax, [esp + 0xd3c]
push eax
lea eax, [esp + 0x4b2]
push eax
call fcn.004cff45
add esp, 0xc
test eax, eax
je 0x4a6d39
mov byte [esp + 0x1b], 0
mov byte [esp + 0x28], 0
push esi
lea eax, [esp + 0xd3c]
push eax
lea eax, [esp + 0x4b2]
push eax
call fcn.004d95fc
add esp, 0xc
mov dword [esp + esi*2 + 0x4aa], 0x20
mov bx, word [esp + 0xd38]
lea esi, [esp + 0xd38]
test bx, bx
je 0x4a6db1
movzx eax, bx
nop dword [eax]
nop dword [eax + eax]
movzx edx, ax
mov ecx, 0x512f0c
mov eax, 0x20
nop dword [eax]
cmp dx, ax
je 0x4a6e50
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a6d90
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a6d80
xor eax, eax
mov word [esp + 0x258], ax
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x3c]
cmp byte [edi + 0x14], 0
je 0x4a6de2
cmp word [esp + 0x258], 0
jne 0x4a6de2
test ebx, ebx
mov eax, 1
cmove ebx, eax
mov dword [esp + 0x3c], ebx
lea eax, [esp + 0x258]
push 0x28
push eax
call fcn.004cbd94
add esp, 8
test eax, eax
jne 0x4a7dd5
mov ecx, str._bool
lea eax, [esp + 0x4a8]
nop dword [eax + eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x4a6f8c
test dx, dx
je 0x4a6e3a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x4a6f8c
add eax, 4
add ecx, 4
test dx, dx
jne 0x4a6e10
xor eax, eax
jmp 0x4a6f91
cmp word [edi], 0x3a
je 0x4a6d5d
jmp 0x4a6cf3
lea edx, [esp + 0xd38]
movzx eax, bx
nop word [eax + eax]
movzx esi, ax
mov ecx, 0x512f0c
mov eax, 0x20
nop dword [eax]
cmp si, ax
je 0x4a6e8f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a6e70
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
jne 0x4a6e60
xor edx, edx
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4a6e92
sub edx, ecx
sar edx, 1
cmp edx, 0x11b
ja 0x4a7d09
test edi, edi
je 0x4a6ec0
cmp word [edi], 0x3a
jne 0x4a6ec0
lea edx, [esp + 0xd38]
jmp 0x4a6eff
lea edx, [esp + 0xd38]
movzx eax, bx
nop word [eax + eax]
movzx esi, ax
mov ecx, 0x512f0c
mov eax, 0x20
nop dword [eax]
cmp si, ax
je 0x4a6eff
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a6ee0
movzx eax, word [edx + 2]
add edx, 2
test ax, ax
jne 0x4a6ed0
xor edx, edx
lea ecx, [esp + 0x258]
movzx eax, word [edx]
lea edx, [edx + 2]
mov word [ecx], ax
lea ecx, [ecx + 2]
test ax, ax
jne 0x4a6f06
lea eax, [esp + 0x258]
push 0x3a
push eax
call fcn.004cbd94
add esp, 8
test eax, eax
je 0x4a6f60
mov edx, dword [esp + 0x28]
xor ecx, ecx
mov word [eax], cx
xor esi, esi
movzx ecx, dl
shr ecx, 3
cmp ecx, dword [esp + 0x50]
lea ecx, [eax + 2]
movzx edx, dl
cmove edx, esi
mov byte [esp + 0x28], dl
call fcn.00419340
mov bl, al
add byte [esp + 0x28], bl
mov byte [esp + 0x1b], bl
jmp 0x4a6f6a
mov byte [esp + 0x1b], 0
mov byte [esp + 0x28], 0
or edx, 0xffffffff
lea ecx, [esp + 0x258]
call fcn.00429850
mov edx, eax
lea ecx, [esp + 0x258]
call fcn.004298c0
jmp 0x4a6dbb
sbb eax, eax
or eax, 1
test eax, eax
jne 0x4a6fa0
mov ecx, 1
mov dword [esp + 0x50], ecx
jmp 0x4a6fd6
xor esi, esi
mov ecx, dword [esi*4 + 0x514630]
lea edx, [esp + 0x4a8]
call fcn.004afb20
test eax, eax
jne 0x4a6fc1
inc esi
cmp esi, 8
jl 0x4a6fa2
jmp 0x4a6fc7
lea eax, [esi + 1]
movzx eax, ax
movsx ecx, ax
mov dword [esp + 0x50], ecx
test ecx, ecx
je 0x4a749b
cmp dword [esp + 0x38], 0
je 0x4a70e1
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x4a6ff6
cmp eax, 4
jge 0x4a6ff6
mov esi, eax
mov dword [esp + 0x2c], eax
jmp 0x4a6fff
mov esi, 4
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 0x1c]
mov eax, ecx
cdq
idiv esi
test edx, edx
je 0x4a7019
mov eax, esi
sub eax, edx
cdq
idiv esi
add ecx, edx
mov dword [esp + 0x1c], ecx
cmp esi, dword [esp + 0x30]
jle 0x4a7023
mov dword [esp + 0x30], esi
xor edx, edx
xor ebx, ebx
xor eax, eax
or edi, 0xffffffff
xor esi, esi
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x4a704f
cmp byte [esp + 0x1b], 0
je 0x4a704f
mov ecx, dword [esp + 0x28]
cmp cl, byte [esp + 0x1b]
mov ecx, dword [esp + 0x1c]
je 0x4a704f
sub ecx, dword [esp + 0x50]
push ebx
push eax
push edi
mov edi, dword [esp + 0x30]
lea eax, [esp + 0x88]
push esi
mov esi, dword [esp + 0x4c]
push edx
push dword [esp + 0x64]
push esi
push ecx
push dword [esp + 0x58]
mov ecx, edi
push eax
lea eax, [esp + 0x280]
push eax
call fcn.004a82b0
mov ebx, eax
test ebx, ebx
je 0x4a7d33
mov edx, dword [esp + 0x38]
test esi, esi
jne 0x4a7097
test edx, edx
je 0x4a745f
xor ecx, ecx
nop dword [eax]
movzx eax, word [esp + ecx + 0x4a8]
lea ecx, [ecx + 2]
mov word [esp + ecx + 0x8ee], ax
test ax, ax
jne 0x4a70a0
mov di, word [esp + 0x258]
test edx, edx
je 0x4a726b
test esi, esi
jne 0x4a71fd
test di, di
jne 0x4a71fd
lea eax, [esi + 1]
jmp 0x4a71ff
mov dl, byte [esp + 0x1b]
test dl, dl
je 0x4a70f3
cmp byte [esp + 0x28], dl
jne 0x4a716c
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x4a7101
mov edi, eax
cmp ecx, eax
jg 0x4a7103
mov edi, ecx
mov esi, dword [esp + 0x1c]
mov eax, esi
cdq
idiv edi
test edx, edx
je 0x4a7119
mov eax, edi
sub eax, edx
cdq
idiv edi
add esi, edx
mov dl, byte [esp + 0x1b]
mov eax, dword [esp + 0x30]
mov ecx, esi
cmp edi, eax
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], edi
cmovg eax, edi
mov dword [esp + 0x30], eax
test ebx, ebx
jne 0x4a7023
mov eax, dword [esp + 0x28]
movzx esi, dl
lea edx, [esp + 0x4a8]
mov dword [esp + 0x1c], ecx
mov ecx, str._TCHAR_LPTSTR_LPCTSTR
movzx ebx, al
mov dword [esp + 0x70], esi
sub ebx, esi
call fcn.004afb20
test eax, eax
je 0x4a7176
mov edi, 0x4b0
jmp 0x4a71be
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
jmp 0x4a711d
lea edx, [esp + 0x4a8]
mov ecx, str._LPWSTR_LPCWSTR_WCHAR
call fcn.004afb20
test eax, eax
je 0x4a7192
mov edi, 0x4b0
jmp 0x4a71aa
lea edx, [esp + 0x4a8]
mov ecx, str._CHAR_LPSTR_LPCSTR_UCHAR
call fcn.004afb20
neg eax
sbb edi, edi
neg edi
dec edi
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x70], esi
mov esi, dword [esp + 0x2c]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x1c], eax
lea edx, [esp + 0x4a8]
mov ecx, str._PTR_SHORT_INT_INT8_INT16_INT32_INT64_CHAR_ACCESS_MASK_PVOID_VOID_HALF_PTR_BOOL_LONG_LONG32_LONGLONG_LONG64_USN_INT_PTR_LONG_PTR_POINTER_64_POINTER_SIGNED_SIGNED_SSIZE_T_WPARAM___int64
call fcn.004afb20
lea edx, [esp + 0x4a8]
mov ecx, str._FLOAT_DOUBLE_PFLOAT_PDOUBLE
mov esi, eax
call fcn.004afb20
neg eax
sbb edx, edx
mov eax, dword [esp + 0x70]
xor ecx, ecx
inc edx
test esi, esi
sete cl
mov dword [esp + 0x40], ecx
mov esi, ecx
jmp 0x4a702e
xor eax, eax
mov esi, edx
sub esi, eax
je 0x4a7267
nop word [eax + eax]
lea ecx, [esp + 0x8f0]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a7220
sub ecx, edx
sar ecx, 1
je 0x4a7255
nop dword [eax]
nop word [eax + eax]
mov ax, word [esp + ecx*2 + 0x8f0]
mov word [esp + ecx*2 + 0x8f2], ax
sub ecx, 1
jne 0x4a7240
mov eax, 0x2a
mov word [esp + 0x8f2], ax
sub esi, 1
jne 0x4a7210
mov esi, dword [esp + 0x3c]
test di, di
je 0x4a72c0
test esi, esi
je 0x4a72c0
lea edx, [esp + 0x8f0]
lea ecx, [edx + 2]
nop
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4a7280
sub edx, ecx
lea ecx, [esp + 0x140]
sar edx, 1
lea eax, [edx + edx]
mov edx, ecx
sub eax, edx
lea edx, [esp + 0x8f0]
add edx, eax
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [edx + ecx - 2], ax
test ax, ax
jne 0x4a72b0
mov edi, dword [esp + 0x24]
lea eax, [esp + 0x8f0]
push 1
lea edx, [esp + 0x84]
mov dword [esp + 0x104], eax
push edx
mov ecx, dword [edi + 0x1c]
lea edx, [esp + 0xe8]
push 0
push edx
lea edx, [esp + 0xe0]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x1c]
cmp eax, 1
jne 0x4a730b
mov eax, dword [esp + 0xd0]
mov dword [ebx + 0x14], eax
jmp 0x4a745b
push 0x28
call fcn.004ca856
add esp, 4
mov dword [esp + 0x40], eax
lea edx, [esp + 0x80]
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 [ebx + 0x14], eax
lea edx, [esp + 0xe8]
mov dword [esp + 0x118], eax
mov eax, dword [edi + 0x1c]
push 1
push edx
lea edx, [esp + 0xe0]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x1c]
mov eax, dword [esp + 0xd0]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov ecx, dword [ebx + 0x14]
mov eax, dword [edi + 0x1c]
mov dword [ecx + 0x1c], eax
mov eax, dword [edi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov ecx, dword [ebx + 0x14]
mov eax, dword [edi + 0x20]
mov dword [ecx + 0x20], eax
cmp word [esp + 0x258], 0
je 0x4a73d0
test esi, esi
je 0x4a73d0
cmp dword [esp + 0x38], 0
mov ecx, 4
jne 0x4a73cb
mov ecx, dword [ebx + 8]
imul ecx, esi
jmp 0x4a73ee
lea eax, [esp + 0x8f0]
push 0x2a
push eax
call fcn.004cbd94
add esp, 8
mov ecx, 4
test eax, eax
jne 0x4a73ee
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
mov edx, 5
mov dword [eax + 0x18], ecx
lea eax, [esp + 0x8f0]
mov dword [esp + 0x60], 0
lea ecx, [esp + 0xac]
mov dword [esp + 0x58], eax
mov dword [esp + 0xa0], 3
mov eax, dword [ebx + 0x14]
mov dword [esp + 0x120], eax
call fcn.004a5ec0
test eax, eax
je 0x4a7d33
mov eax, dword [edi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebx + 0x14]
mov dword [eax + 0x1c], 0
mov dword [esp + 0x60], 4
mov dword [esp + 0xa0], 1
mov edx, dword [esp + 0x38]
mov al, byte [esp + 0x1b]
test al, al
je 0x4a7471
cmp byte [esp + 0x28], al
jne 0x4a7b31
mov ecx, dword [esp + 0x50]
test edx, edx
mov ebx, dword [esp + 0x1c]
mov eax, 4
cmovne ecx, eax
test esi, esi
mov eax, 1
cmovne eax, esi
imul ecx, eax
add ebx, ecx
mov dword [esp + 0x1c], ebx
jmp 0x4a7b35
lea eax, [esp + 0x4a8]
mov dword [esp + 0x58], 0
push 0x28
push eax
call fcn.004cbd94
add esp, 8
test eax, eax
mov eax, dword [0x51b98c]
je 0x4a75ef
mov edi, dword [eax + 0xb4]
lea eax, [esp + 0x4a8]
push 0
push 0x512d08
push eax
call fcn.004db593
add esp, 8
dec eax
mov ecx, 0x520c68
push eax
lea eax, [esp + 0x4b2]
push eax
call fcn.0043d0f0
mov ecx, dword [0x51b98c]
mov dword [ecx + 0xb4], eax
test eax, eax
je 0x4a7d42
lea esi, [esp + 0x4a8]
lea ecx, [esi + 2]
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x4a7511
lea eax, [esp + 0x4a8]
sub esi, ecx
push 0x512d08
push eax
sar esi, 1
call fcn.004db593
sub esi, eax
lea eax, [esp + 0x4b0]
push 0x512d08
push eax
sub esi, 3
call fcn.004db593
add esp, 0x10
lea ecx, [esp + 0x4aa]
lea eax, [ecx + eax*2]
mov ecx, 0x520c68
push 0
push 2
push 0
push esi
push eax
call fcn.0043efd0
mov dword [esp + 0x58], eax
mov eax, dword [0x51b98c]
mov dword [eax + 0xb4], edi
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x4a75c7
lea ecx, [esp + 0x4a8]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a7590
sub ecx, edx
push 0
sar ecx, 1
push 1
push 0
lea eax, [ecx - 2]
mov ecx, 0x520c68
push eax
lea eax, [esp + 0x4ba]
push eax
call fcn.0043efd0
mov dword [esp + 0x58], eax
test eax, eax
je 0x4a7d72
mov edi, dword [esp + 0x38]
test edi, edi
jne 0x4a775a
mov ebx, dword [esp + 0x34]
test ebx, ebx
jle 0x4a7662
mov ecx, dword [esp + 0x60]
cmp ecx, 5
ja case.0x4a75e8.1
jmp dword [ecx*4 + 0x4a8028]
cmp dword [eax + 0xb4], 0
je 0x4a757b
lea ecx, [esp + 0x4a8]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a7602
sub ecx, edx
push 0
sar ecx, 1
push 2
push 0
lea eax, [ecx - 2]
mov ecx, 0x520c68
push eax
lea eax, [esp + 0x4ba]
push eax
call fcn.0043efd0
mov dword [esp + 0x58], eax
jmp 0x4a757f
push 0
push 1
mov ecx, eax
call fcn.00401630
jmp case.0x4a75e8.0
mov eax, 0x4f03e8
mov ecx, eax
call fcn.0049f830
movzx eax, al
cmp eax, ebx
jle 0x4a765e
mov esi, ebx
mov dword [esp + 0x2c], ebx
jmp 0x4a7692
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x60]
cmp ecx, 5
ja case.0x4a766b.1
jmp dword [ecx*4 + 0x4a8040]
push 0
push 1
mov ecx, eax
call fcn.00401630
jmp case.0x4a766b.0
mov eax, 0x4f03e8
mov ecx, eax
call fcn.0049f830
movzx esi, al
mov dword [esp + 0x2c], esi
mov ecx, dword [esp + 0x30]
cmp esi, ecx
mov al, byte [esp + 0x1b]
cmovg ecx, esi
mov dword [esp + 0x30], ecx
test al, al
je 0x4a76ad
cmp byte [esp + 0x28], al
jne 0x4a76cd
mov ebx, dword [esp + 0x1c]
test ebx, ebx
je 0x4a76d1
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x4a76d1
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
mov dword [esp + 0x1c], ebx
jmp 0x4a76d1
mov ebx, dword [esp + 0x1c]
mov eax, ebx
cdq
mov dword [esp + 0xf0], eax
lea eax, [esp + 0x30]
mov dword [esp + 0xf4], edx
cdq
mov dword [esp + 0x98], eax
lea eax, [esp + 0xac]
push 4
push eax
lea eax, [esp + 0x90]
mov dword [esp + 0xa4], edx
push eax
lea eax, [esp + 0x80]
push eax
call fcn.0049fb80
add esp, 0x10
cmp dword [esp + 0x90], 1
jne 0x4a7d98
mov al, byte [esp + 0x1b]
test al, al
je 0x4a7737
cmp byte [esp + 0x28], al
jne 0x4a77db
mov ecx, dword [esp + 0x30]
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x4a77db
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
mov dword [esp + 0x1c], ebx
jmp 0x4a77db
push 1
lea eax, [esp + 0xb0]
xorps xmm0, xmm0
push eax
lea eax, [esp + 0x90]
movlpd qword [esp + 0xf8], xmm0
push eax
lea eax, [esp + 0x80]
push eax
call fcn.0049fb80
add esp, 0x10
cmp dword [esp + 0x90], 1
jne 0x4a7d98
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x4a77ab
cmp eax, 4
jge 0x4a77ab
mov esi, eax
mov dword [esp + 0x2c], eax
jmp 0x4a77b4
mov esi, 4
mov dword [esp + 0x2c], esi
mov ebx, dword [esp + 0x1c]
mov eax, ebx
cdq
idiv esi
test edx, edx
je 0x4a77ce
mov eax, esi
sub eax, edx
cdq
idiv esi
add ebx, edx
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x30]
cmp esi, eax
cmovg eax, esi
mov dword [esp + 0x30], eax
mov esi, dword [esp + 0x3c]
xor ecx, ecx
push 0
push 0
push 0xffff
push 0
test edi, edi
mov eax, ebx
push 0
cmovne eax, ecx
mov ecx, dword [esp + 0x9c]
sub ecx, eax
lea eax, [esp + 0x90]
push ecx
mov ecx, dword [esp + 0x3c]
push esi
push ebx
push edi
push eax
lea eax, [esp + 0x280]
push eax
call fcn.004a82b0
mov ebx, eax
test ebx, ebx
je 0x4a7dc2
xor edx, edx
nop word [eax + eax]
movzx ecx, word [esp + edx + 0x4a8]
lea edx, [edx + 2]
mov word [esp + edx + 0x8ee], cx
test cx, cx
jne 0x4a7830
test edi, edi
mov di, word [esp + 0x258]
je 0x4a78cb
test esi, esi
jne 0x4a7862
test di, di
jne 0x4a7862
lea eax, [esi + 1]
jmp 0x4a7864
xor eax, eax
mov esi, dword [esp + 0x38]
sub esi, eax
je 0x4a78c7
nop dword [eax]
lea ecx, [esp + 0x8f0]
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a7880
sub ecx, edx
sar ecx, 1
je 0x4a78b5
nop dword [eax]
nop word [eax + eax]
mov ax, word [esp + ecx*2 + 0x8f0]
mov word [esp + ecx*2 + 0x8f2], ax
sub ecx, 1
jne 0x4a78a0
mov eax, 0x2a
mov word [esp + 0x8f2], ax
sub esi, 1
jne 0x4a7870
mov esi, dword [esp + 0x3c]
test di, di
je 0x4a7920
test esi, esi
je 0x4a7920
lea edx, [esp + 0x8f0]
lea ecx, [edx + 2]
nop
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x4a78e0
sub edx, ecx
lea ecx, [esp + 0x140]
sar edx, 1
lea eax, [edx + edx]
mov edx, ecx
sub eax, edx
lea edx, [esp + 0x8f0]
add edx, eax
nop word [eax + eax]
movzx eax, word [ecx]
lea ecx, [ecx + 2]
mov word [ecx + edx - 2], ax
test ax, ax
jne 0x4a7910
mov edi, dword [esp + 0x24]
lea eax, [esp + 0x8f0]
push 1
lea edx, [esp + 0x84]
mov dword [esp + 0x104], eax
push edx
mov ecx, dword [edi + 0x1c]
lea edx, [esp + 0xe8]
push 0
push edx
lea edx, [esp + 0xe0]
mov eax, dword [ecx]
push edx
push ecx
call dword [eax + 0x1c]
cmp eax, 1
jne 0x4a796b
mov eax, dword [esp + 0xd0]
mov dword [ebx + 0x14], eax
jmp 0x4a7ada
push 0x28
call fcn.004ca856
add esp, 4
mov dword [esp + 0x40], eax
lea edx, [esp + 0x80]
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 [ebx + 0x14], eax
lea edx, [esp + 0xe8]
mov dword [esp + 0x118], eax
mov eax, dword [edi + 0x1c]
push 1
push edx
lea edx, [esp + 0xe0]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x1c]
mov ecx, dword [ebx + 0x14]
mov eax, dword [edi + 0x1c]
mov dword [ecx + 0x1c], eax
mov eax, dword [edi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 4]
mov ecx, dword [ebx + 0x14]
mov eax, dword [edi + 0x20]
mov dword [ecx + 0x20], eax
cmp word [esp + 0x258], 0
je 0x4a7a23
test esi, esi
je 0x4a7a23
cmp dword [esp + 0x38], 0
mov ecx, 4
jne 0x4a7a1e
mov ecx, dword [ebx + 8]
imul ecx, esi
jmp 0x4a7a41
lea eax, [esp + 0x8f0]
push 0x2a
push eax
call fcn.004cbd94
add esp, 8
mov ecx, 4
test eax, eax
jne 0x4a7a41
mov ecx, dword [ebx + 8]
mov eax, dword [ebx + 0x14]
push 0x2a
mov dword [eax + 0x18], ecx
lea eax, [esp + 0x8f4]
push eax
call fcn.004cbd94
add esp, 8
test eax, eax
jne 0x4a7a73
lea eax, [esp + 0x8f0]
push 0x5b
push eax
call fcn.004cbd94
add esp, 8
test eax, eax
je 0x4a7a86
lea eax, [esp + 0x8f0]
mov dword [esp + 0x60], 0
mov dword [esp + 0x58], eax
mov dword [esp + 0xa0], 3
lea ecx, [esp + 0xac]
mov eax, dword [ebx + 0x14]
mov edx, 5
mov dword [esp + 0x120], eax
call fcn.004a5ec0
test eax, eax
je 0x4a7d33
mov eax, dword [edi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebx + 0x14]
mov dword [eax + 0x1c], 0
mov dword [esp + 0x60], 4
mov dword [esp + 0xa0], 1
cmp dword [esp + 0x38], 0
je 0x4a7af8
mov ebx, dword [esp + 0x1c]
test esi, esi
mov eax, 1
cmovne eax, esi
lea ebx, [ebx + eax*4]
mov dword [esp + 0x1c], ebx
jmp 0x4a7b35
mov al, byte [esp + 0x1b]
test al, al
je 0x4a7b06
cmp byte [esp + 0x28], al
jne 0x4a7b31
mov edx, dword [esp + 0x88]
test esi, esi
je 0x4a7b26
mov ecx, edx
lea eax, [esi - 1]
sub ecx, dword [esp + 0x1c]
imul ecx, eax
lea ebx, [edx + ecx]
mov dword [esp + 0x1c], ebx
jmp 0x4a7b35
xor ecx, ecx
lea ebx, [edx + ecx]
mov dword [esp + 0x1c], ebx
jmp 0x4a7b35
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x4a7b72
mov ecx, dword [esp + edx*4 + 0x218]
mov eax, ebx
sub eax, ecx
cmp eax, dword [esp + edx*4 + 0x198]
jle 0x4a7b58
mov dword [esp + edx*4 + 0x198], eax
cmp byte [esp + edx + 0x130], 0
jne 0x4a7b72
mov ebx, ecx
mov byte [esp + 0x28], 0
mov dword [esp + 0x1c], ebx
mov byte [esp + 0x1b], 0
mov edi, dword [esp + 0x20]
push 0x7d
push edi
call fcn.004cbd94
add esp, 8
test eax, eax
je 0x4a7c21
movzx eax, word [edi]
mov esi, edi
test ax, ax
je 0x4a7c85
nop word [eax + eax]
movzx edx, ax
mov ecx, 0x512c24
mov eax, 0x3b
nop dword [eax]
cmp dx, ax
je 0x4a7bd2
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a7bb0
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7ba0
jmp 0x4a7c85
push 0x7d
push edi
call fcn.004cbd94
mov edi, eax
add esp, 8
mov eax, dword [esp + 0x20]
mov esi, eax
movzx ecx, word [eax]
test cx, cx
je 0x4a7c1d
nop dword [eax]
movzx edx, cx
mov eax, 0x3b
mov ecx, 0x512c24
nop dword [eax]
cmp dx, ax
je 0x4a7c7d
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a7c00
movzx ecx, word [esi + 2]
add esi, 2
test cx, cx
jne 0x4a7bf0
mov edi, dword [esp + 0x20]
movzx eax, word [edi]
mov esi, edi
test ax, ax
je 0x4a7c5d
nop dword [eax + eax]
movzx edx, ax
mov ecx, 0x512c24
mov eax, 0x3b
nop dword [eax]
cmp dx, ax
je 0x4a7c9f
movzx eax, word [ecx + 2]
add ecx, 2
test ax, ax
jne 0x4a7c40
movzx eax, word [esi + 2]
add esi, 2
test ax, ax
jne 0x4a7c30
mov ecx, edi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4a7c62
sub ecx, edx
sar ecx, 1
lea edi, [edi + ecx*2]
mov dword [esp + 0x20], edi
jmp 0x4a686f
cmp edi, esi
jae 0x4a7c1d
mov edi, dword [esp + 0x20]
push 0x504d38
push edi
call fcn.004db593
add esp, 8
lea edi, [edi + eax*2]
mov dword [esp + 0x20], edi
jmp 0x4a686f
push 0x512c24
push edi
call fcn.004db593
add esp, 8
lea edi, [edi + eax*2]
add edi, 2
mov dword [esp + 0x20], edi
jmp 0x4a686f
mov ecx, dword [esp + 0x24]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
push edi
push str.Invalid_structure_definition.
mov ecx, 0x520c68
call fcn.0044ddc0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x24]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0xd38]
mov ecx, 0x520c68
push eax
push 0x512cb0
call fcn.0044ddc0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x24]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0xd38]
mov ecx, 0x520c68
push eax
push str.Invalid_structure_definition.
call fcn.0044ddc0
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 dword [ecx + 0xb4], edi
mov ecx, dword [esp + 0x24]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x4a8]
mov ecx, 0x520c68
push eax
push str.Variable_was_not_found_in_function.
call fcn.0044ddc0
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 + 0x4a8]
mov ecx, 0x520c68
push eax
push str.Invalid_structure_definition.
call fcn.0044ddc0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x24]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
lea eax, [esp + 0x4a8]
mov ecx, 0x520c68
push eax
push str.Invalid_structure_definition.
call fcn.0044ddc0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x24]
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 + 0x258]
mov ecx, 0x520c68
push eax
push str.Invalid_structure_definition.
call fcn.0044ddc0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
test ecx, ecx
je 0x4a7e19
mov eax, ebx
cdq
idiv ecx
test edx, edx
je 0x4a7e19
mov eax, ecx
sub eax, edx
cdq
idiv ecx
add ebx, edx
test ebx, ebx
jne 0x4a7e47
mov ecx, dword [esp + 0x24]
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a7e39.1
jmp dword [ecx*4 + 0x4a8058]
mov eax, dword [eax]
jmp 0x4a611d
mov esi, dword [esp + 0x24]
cmp dword [esi + 0x18], ebx
je 0x4a7ec8
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov ecx, dword [esp + 0x54]
mov eax, dword [ecx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a7e64.1
jmp dword [ecx*4 + 0x4a8070]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401630
push eax
push str.Invalid_structure_Length.
mov ecx, 0x520c68
call fcn.0044ddc0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [eax]
mov ecx, 0x520c68
push eax
push str.Invalid_structure_Length.
call fcn.0044ddc0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x4f03e8
mov ecx, 0x520c68
push eax
push str.Invalid_structure_Length.
call fcn.0044ddc0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esi + 0x14], 0
je 0x4a7f17
mov eax, dword [esi + 0x1c]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp dword [esi + 0xc], 1
jg 0x4a7f46
mov eax, dword [esi + 8]
mov eax, dword [eax + 0x18]
cmp word [eax], 0
jne 0x4a7f46
mov dword [esi + 0x1c], 0
cmp dword [esp + 0x78], 2
jle 0x4a7f17
mov ebx, dword [esp + 0x54]
mov ecx, dword [ebx + 8]
call fcn.0047a7c0
test eax, eax
je 0x4a7f17
mov ecx, dword [ebx + 8]
call fcn.0047a7c0
push eax
mov ecx, esi
call fcn.004a83e0
cmp dword [esi + 0xc], 1
jne 0x4a7f3d
mov ecx, dword [esi + 8]
cmp dword [ecx + 0x18], 0
je 0x4a7f3d
cmp word [ecx + 4], 0
jne 0x4a7f3d
cmp dword [ecx + 0x10], 0
jne 0x4a7f3d
cmp dword [ecx + 0x14], 0
jne 0x4a7f3d
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.004a80a0
mov dword [esi + 0x1c], eax
test eax, eax
jne 0x4a7ef0
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 [edi]
push edi
call dword [eax + 8]
mov eax, dword [esi]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x4a7f77.1
jmp dword [ecx*4 + 0x4a8088]
mov ecx, dword [eax]
push 0
push 1
call fcn.00401630
jmp 0x4a7f94
mov eax, dword [eax]
jmp 0x4a7f94
mov eax, 0x4f03e8
push eax
push 0x504378
mov ecx, 0x520c68
call fcn.0044ddc0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret