Function at 0x4a0b60
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x158
push esi
mov esi, ecx
mov dword [esp + 0x74], 0
push edi
mov edi, edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
mov eax, dword [esi + 0x1cc]
mov dword [esp + 0x11c], eax
mov eax, dword [esi + 0x1d0]
mov dword [esi + 0x1cc], eax
inc eax
mov dword [esi + 0x1d0], eax
mov eax, dword [esi]
mov dword [esp + 0x14], 1
mov dword [esp + 0x28], eax
test edi, edi
je 0x4a375e
cmp byte [eax + 0x41], 0
jne 0x4a375e
cmp dword [esi + 0x40], 0
jne 0x4a375e
push 0
push 0
push 0
mov edx, 0x15
call fcn.0047fce0
add esp, 0xc
test eax, eax
jne 0x4a375e
push 0x30
push eax
lea eax, [esp + 0xf4]
push eax
call fcn.00525d00
mov eax, dword [ebp + 8]
add esp, 0xc
cmp byte [eax], 8
ja 0x4a0c1e
mov edx, dword [edi + 0x30]
mov ecx, dword [esp + 0x28]
call fcn.00477f20
mov eax, 0xfffe
mov dword [edi + 0x30], 0
and word [edi + 6], ax
push 0
mov edx, edi
mov ecx, esi
call fcn.004a0320
mov eax, dword [edi + 0x30]
xorps xmm0, xmm0
mov edx, dword [edi + 0x20]
add esp, 4
cmp dword [esi + 0x40], 0
movdqa xmmword [esp + 0xc0], xmm0
movq qword [esp + 0xd0], xmm0
mov dword [esp + 0xd8], 0
mov dword [esp + 0x40], eax
mov dword [esp + 0xc0], eax
mov dword [esp + 0x34], edx
jne 0x4a366c
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x41], 0
jne 0x4a366c
mov eax, dword [ebp + 8]
movzx edx, word [edi + 6]
shr edx, 3
and edx, 1
movzx ecx, byte [eax]
mov eax, dword [edi]
mov dword [esp + 0x2c], edx
cmp dword [eax], 1
jle 0x4a0d0a
cmp ecx, 0xa
je 0x4a0c9e
cmp ecx, 0xb
jne 0x4a0d0a
push str.only_a_single_result_allowed_for_a_SELECT_that_is_part_of_an_expression
push esi
call fcn.00447720
add esp, 8
mov edi, dword [esp + 0x28]
mov eax, 1
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x11c]
mov dword [esi + 0x1cc], ecx
test eax, eax
jne 0x4a0ce0
mov eax, dword [ebp + 8]
cmp byte [eax], 9
jne 0x4a0ce0
push dword [esp + 0x78]
mov ecx, esi
call fcn.0049a6f0
add esp, 4
mov esi, dword [esp + 0x108]
test esi, esi
je 0x4a36f8
cmp dword [edi + 0x208], 0
je 0x4a367a
mov edx, esi
mov ecx, edi
call fcn.00444aa0
jmp 0x4a36f8
mov ecx, dword [esp + 0x24]
xor edi, edi
cmp dword [ecx + 0x34], edi
jne 0x4a0dc5
lea esp, [esp]
mov eax, dword [esp + 0x34]
cmp edi, dword [eax]
jge 0x4a0dc5
mov esi, dword [esp + 0x34]
lea eax, [edi + edi*4]
add eax, eax
mov eax, dword [esi + eax*8 + 0x1c]
mov esi, dword [esp + 0x20]
test eax, eax
je 0x4a0db2
movzx eax, word [eax + 6]
shr eax, 3
and eax, 1
push eax
push edx
mov edx, ecx
mov dword [esp + 0x14], eax
push edi
mov ecx, esi
call fcn.0049e670
add esp, 0xc
test eax, eax
je 0x4a0d7d
cmp dword [esp + 0xc], 0
je 0x4a0d7a
mov eax, dword [esp + 0x24]
mov dword [esp + 0x2c], 1
or word [eax + 6], 8
or edi, 0xffffffff
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
mov edx, dword [eax + 0x20]
cmp byte [ecx + 0x41], 0
mov dword [esp + 0x34], edx
jne 0x4a365c
mov ecx, dword [ebp + 8]
mov edx, dword [esp + 0x2c]
cmp byte [ecx], 8
jbe 0x4a0db6
mov ecx, dword [eax + 0x30]
mov dword [esp + 0x40], ecx
mov dword [esp + 0xc0], ecx
jmp 0x4a0db6
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x24]
inc edi
cmp dword [eax + 0x34], 0
je 0x4a0d20
mov ecx, esi
call fcn.0049afd0
mov edi, eax
mov dword [esp + 0x70], edi
test edi, edi
je 0x4a0cac
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x34], 0
je 0x4a0e06
push dword [ebp + 8]
mov edx, ecx
mov ecx, esi
call fcn.0049ba80
mov ecx, dword [esp + 0x120]
add esp, 4
mov dword [esi + 0x1cc], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x34]
mov dword [esp + 0x30], 0
cmp dword [eax], 0
jle 0x4a10b8
lea esi, [eax + 0x20]
mov edx, eax
mov dword [esp + 0x68], esi
mov eax, dword [esi - 4]
mov dword [esp + 0x6c], eax
test eax, eax
je 0x4a109c
mov eax, dword [esi]
test eax, eax
je 0x4a0e5b
test byte [esi + 0x10], 4
jne 0x4a109c
push eax
push dword [esi + 4]
mov edx, 0xf
mov ecx, edi
call fcn.004634c0
add esp, 8
jmp 0x4a1094
call fcn.00476a20
mov ecx, dword [esp + 0x20]
add dword [ecx + 0x1c8], eax
test byte [esi + 0xc], 0x20
jne 0x4a0e8e
mov eax, dword [esp + 0x24]
push dword [esi + 0x18]
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0x2c]
push dword [eax + 0x24]
call fcn.0049ecd0
mov ecx, dword [esp + 0x28]
add esp, 8
mov eax, dword [esp + 0x34]
cmp dword [eax], 1
jne 0x4a0f83
mov eax, dword [esp + 0x24]
test byte [eax + 6], 2
jne 0x4a0f83
mov eax, dword [esp + 0x28]
mov edx, 0x100
test word [eax + 0x3c], dx
jne 0x4a0f83
mov eax, dword [ecx + 0x48]
mov edx, 0x11
mov esi, dword [edi + 0x20]
inc eax
mov dword [ecx + 0x48], eax
inc esi
mov ecx, dword [esp + 0x68]
push esi
push 0
push eax
mov dword [ecx + 4], eax
mov ecx, edi
call fcn.00463390
mov ecx, dword [esp + 0x74]
add esp, 0xc
mov edx, dword [esp + 0x6c]
mov word [esp + 0xa0], 0xd
mov dword [esp + 0xa8], 0
mov eax, dword [ecx + 4]
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0x20]
mov dword [ecx], esi
mov dword [esp + 0xac], 0
mov al, byte [eax + 0x1d0]
mov byte [ecx + 0x14], al
lea eax, [esp + 0xa0]
mov ecx, dword [esp + 0x20]
push eax
call fcn.004a0b60
mov eax, dword [esp + 0x70]
add esp, 4
push dword [eax + 0x1c]
push dword [eax + 0x18]
call fcn.00448c70
mov edx, dword [esp + 0x70]
mov ecx, dword [edx - 8]
mov word [ecx + 0x26], ax
mov ecx, edi
mov eax, dword [esp + 0xb0]
or dword [edx + 0x10], 4
push dword [edx + 4]
mov dword [edx + 8], eax
mov edx, 0x12
call fcn.00463450
add esp, 0xc
lea edx, [esi - 1]
mov ecx, edi
call fcn.004639f0
mov esi, dword [esp + 0x68]
jmp 0x4a1064
xor eax, eax
mov edx, 0x17
mov dword [esp + 0x90], eax
mov eax, dword [ecx + 0x48]
inc eax
mov dword [ecx + 0x48], eax
mov ecx, edi
push eax
push 0
mov dword [esi + 4], eax
call fcn.004634c0
mov dword [esp + 0x14], eax
add esp, 8
inc eax
test byte [esi + 0x10], 2
mov dword [esi], eax
jne 0x4a0fc5
mov ecx, dword [esp + 0x20]
call fcn.00478580
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x20]
mov eax, dword [esi + 0x18]
mov edx, dword [esp + 0x6c]
mov dword [esp + 0xa4], eax
mov al, byte [ecx + 0x1d0]
mov byte [esi + 0x14], al
lea eax, [esp + 0xa0]
push eax
mov word [esp + 0xa4], 0xc
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
call fcn.004a0b60
mov eax, dword [esp + 0x70]
add esp, 4
push dword [eax + 0x1c]
push dword [eax + 0x18]
call fcn.00448c70
mov ecx, dword [esi - 8]
add esp, 8
mov word [ecx + 0x26], ax
mov eax, dword [esp + 0x90]
test eax, eax
je 0x4a103d
mov edx, eax
mov ecx, edi
call fcn.004639f0
push dword [esi + 4]
mov edx, 0x10
mov ecx, edi
call fcn.00463450
mov edx, eax
add esp, 4
mov eax, dword [esp + 0xc]
cmp dword [edi + 0x20], eax
jbe 0x4a1064
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 4], edx
mov eax, dword [esp + 0x20]
mov dword [eax + 0x38], 0
mov byte [eax + 0x13], 0
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x41], 0
jne 0x4a3653
mov ecx, dword [esp + 0x24]
call fcn.00476a20
mov ecx, dword [esp + 0x20]
sub dword [ecx + 0x1c8], eax
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x30]
add esi, 0x50
inc eax
mov dword [esp + 0x68], esi
mov dword [esp + 0x30], eax
cmp eax, dword [edx]
jl 0x4a0e24
mov esi, dword [esp + 0x20]
mov eax, dword [ecx]
mov edx, dword [ecx + 0x2c]
mov dword [esp + 0x78], eax
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x8c], eax
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x3c], eax
mov al, byte [ecx + 6]
and al, 1
mov dword [esp + 0x90], edx
mov byte [esp + 0x1b], al
mov byte [esp + 0xa0], al
mov al, byte [ecx + 6]
and al, 9
cmp al, 1
jne 0x4a1134
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x40]
push 0xffffffffffffffff
call fcn.0047bda0
add esp, 4
test eax, eax
jne 0x4a1134
mov eax, dword [esp + 0x24]
mov ecx, 0xfffe
mov edx, dword [esp + 0x78]
push 0
and word [eax + 6], cx
mov ecx, dword [esp + 0x2c]
call fcn.00477620
mov edx, eax
add esp, 4
mov eax, dword [esp + 0x24]
mov dword [esp + 0x3c], edx
mov dword [eax + 0x28], edx
mov eax, dword [esp + 0x40]
test eax, eax
je 0x4a1190
mov ecx, dword [esp + 0x78]
mov edx, eax
push dword [ecx]
mov ecx, esi
push 0
call fcn.00499af0
mov edx, dword [esi + 0x44]
mov ecx, eax
push 0xfffffffffffffffa
push ecx
push 0
lea eax, [edx + 1]
mov dword [esp + 0xdc], edx
mov dword [esi + 0x44], eax
mov eax, dword [esp + 0x8c]
mov ecx, dword [eax]
mov eax, dword [esp + 0x54]
inc ecx
mov eax, dword [eax]
add eax, ecx
mov ecx, edi
push eax
push edx
mov edx, 0x39
call fcn.00463530
add esp, 0x1c
mov dword [esp + 0xd4], eax
jmp 0x4a119b
mov dword [esp + 0xd4], 0xffffffff
mov eax, dword [ebp + 8]
cmp byte [eax], 0xc
jne 0x4a11bb
mov ecx, dword [esp + 0x78]
mov edx, 0x39
push dword [ecx]
mov ecx, edi
push dword [eax + 4]
call fcn.004634c0
add esp, 8
mov ecx, edi
call fcn.00463750
mov ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xbc], ecx
mov edx, eax
push ecx
mov ecx, esi
mov dword [eax + 0x18], 0xffffffff
mov dword [eax + 0x1c], SysReAllocStringLen
call fcn.0049b020
mov edx, dword [esp + 0x28]
add esp, 4
cmp dword [edx + 8], 0
jne 0x4a1217
mov ecx, dword [esp + 0xd4]
test ecx, ecx
js 0x4a1217
mov edx, ecx
mov ecx, edi
call fcn.00463d90
or byte [esp + 0xd8], 1
mov edx, dword [esp + 0x24]
mov byte [eax], 0x3a
test byte [edx + 6], 1
je 0x4a1287
mov esi, dword [esi + 0x44]
mov ecx, dword [esp + 0x20]
push 0xfffffffffffffffa
push ecx
lea eax, [esi + 1]
mov dword [esp + 0xac], esi
mov dword [ecx + 0x44], eax
mov edx, dword [edx]
push 0
push 0
call fcn.00499af0
add esp, 0xc
mov edx, 0x39
mov ecx, edi
push eax
push 0
push 0
push esi
call fcn.00463530
mov ecx, dword [edi + 4]
add esp, 0x14
mov dword [esp + 0xa8], eax
test ecx, ecx
je 0x4a1270
mov eax, dword [edi + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 8
mov esi, dword [esp + 0x20]
mov cl, 3
mov edx, dword [esp + 0x24]
mov dword [esp + 0x6c], ecx
mov byte [esp + 0xa1], cl
jmp 0x4a1294
xor al, al
mov dword [esp + 0x6c], eax
mov byte [esp + 0xa1], al
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x3c]
test eax, eax
jne 0x4a13ae
test ecx, ecx
jne 0x4a13ae
cmp byte [esp + 0x1b], al
push ecx
mov ecx, 0x400
cmovne eax, ecx
mov ecx, esi
movzx eax, ax
push eax
push dword [edx]
mov edx, dword [esp + 0x40]
push dword [esp + 0x4c]
push dword [esp + 0x9c]
call fcn.004b3170
add esp, 0x14
mov dword [esp + 0x2c], eax
test eax, eax
je 0x4a3668
mov cx, word [eax + 0x20]
call fcn.00448d20
mov ecx, dword [esp + 0x24]
cmp edx, dword [ecx + 0x1c]
ja 0x4a1303
jb 0x4a12fd
cmp eax, dword [ecx + 0x18]
jae 0x4a1303
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
cmp byte [esp + 0x1b], 0
mov edx, dword [esp + 0x2c]
je 0x4a1333
mov eax, dword [esp + 0x6c]
mov cl, byte [edx + 0x28]
movzx eax, al
test cl, cl
mov dword [esp + 0x6c], eax
movzx eax, cl
mov ecx, dword [esp + 0x6c]
cmovne ecx, eax
mov dword [esp + 0x6c], ecx
mov byte [esp + 0xa1], cl
mov ecx, dword [esp + 0x40]
test ecx, ecx
je 0x4a1354
movsx eax, byte [edx + 0x24]
xor edx, edx
cmp eax, dword [ecx]
mov dword [esp + 0xc4], eax
cmove ecx, edx
mov dword [esp + 0xc0], ecx
mov eax, dword [esp + 0xd4]
test eax, eax
js 0x4a136c
test ecx, ecx
jne 0x4a136c
mov edx, eax
mov ecx, edi
call fcn.00463be0
mov eax, dword [esp + 0x2c]
mov ecx, esi
mov edx, dword [esp + 0x24]
push dword [eax + 0x34]
push dword [eax + 0x30]
lea eax, [esp + 0xa8]
push dword [ebp + 8]
push eax
lea eax, [esp + 0xd0]
push eax
push 0xffffffffffffffff
push dword [esp + 0x90]
call fcn.00498ed0
mov ecx, dword [esp + 0x48]
add esp, 0x1c
call fcn.004b3b10
jmp 0x4a33a9
mov dword [esp + 0x64], 0
mov dword [esp + 0x5c], 0
test ecx, ecx
je 0x4a14ee
mov eax, dword [edx]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
test eax, eax
jle 0x4a13e6
add ecx, 0x16
xor esi, esi
lea ecx, [ecx + 0x18]
dec eax
mov word [ecx - 0x18], si
test eax, eax
jg 0x4a13d4
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x3c]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
test eax, eax
jle 0x4a1408
add ecx, 0x16
xor edi, edi
lea ecx, [ecx + 0x18]
dec eax
mov word [ecx - 0x18], di
test eax, eax
jg 0x4a13f6
mov edi, dword [esp + 0x70]
cmp dword [edx + 0x1c], 0
ja 0x4a1414
cmp dword [edx + 0x18], 0x64
jbe 0x4a1422
mov dword [edx + 0x18], 0x64
mov dword [edx + 0x1c], 0
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
push 0xffffffffffffffff
call fcn.0047bda0
add esp, 4
mov ecx, 1
test eax, eax
mov eax, 0
cmove eax, ecx
mov ecx, dword [edi + 0x18]
mov dword [esp + 0xc], eax
mov dword [esp + 0x1c], ecx
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x30], edx
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea eax, [edx - 1]
test edx, eax
jne 0x4a1484
lea eax, [edx*8 + 4]
mov edx, dword [ecx + 0x70]
mov ecx, dword [ecx]
push 0
push eax
call fcn.00444ee0
mov ecx, dword [esp + 0x24]
add esp, 8
mov edx, dword [esp + 0x30]
mov dword [ecx + 0x70], eax
mov eax, dword [ecx + 0x70]
test eax, eax
je 0x4a1492
mov dword [eax + edx*4], 0xffffffff
mov ecx, dword [esp + 0x3c]
or eax, 0xffffffff
sub eax, edx
xorps xmm0, xmm0
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x34]
movdqa xmmword [esp + 0x120], xmm0
mov dword [esp + 0x124], eax
lea eax, [esp + 0xec]
mov dword [esp + 0x12c], eax
mov eax, dword [esi + 0x48]
inc eax
movdqa xmmword [esp + 0x130], xmm0
mov dword [esp + 0x120], esi
mov dword [esp + 0xfc], eax
test ecx, ecx
je 0x4a1501
mov eax, dword [ecx]
mov dword [esp + 0xf8], eax
jmp 0x4a150c
mov dword [edx + 0x18], 1
mov dword [edx + 0x1c], 0
jmp 0x4a1426
mov dword [esp + 0xf8], 0
mov edx, dword [esp + 0x78]
mov dword [esp + 0x104], ecx
lea ecx, [esp + 0x120]
call fcn.0047c2c0
mov edx, dword [esp + 0x40]
lea ecx, [esp + 0x120]
call fcn.0047c2c0
mov eax, dword [esp + 0x90]
test eax, eax
je 0x4a1590
xorps xmm0, xmm0
mov dword [esp + 0x158], 0
lea ecx, [esp + 0x120]
movdqa xmmword [esp + 0x140], xmm0
mov dword [esp + 0x158], ecx
mov edx, eax
lea ecx, [esp + 0x140]
movq qword [esp + 0x150], xmm0
mov dword [esp + 0x140], 0x47bfa0
mov dword [esp + 0x144], fcn.00411780
call fcn.00474140
cmp dword [esp + 0x118], 0
mov ecx, dword [esp + 0x10c]
mov dword [esp + 0x110], ecx
jle 0x4a160d
mov ax, word [esp + 0x13c]
xor esi, esi
xor edi, edi
or ax, 8
lea ecx, [esp + 0x120]
mov word [esp + 0x13c], ax
mov eax, dword [esp + 0x114]
mov edx, dword [esi + eax]
mov edx, dword [edx + 0x14]
call fcn.0047c2c0
mov ax, word [esp + 0x13c]
lea esi, [esi + 0x10]
mov ecx, 0xfff7
inc edi
and ax, cx
mov word [esp + 0x13c], ax
cmp edi, dword [esp + 0x118]
jl 0x4a15b4
mov ecx, dword [esp + 0x10c]
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0x48]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x41], 0
jne 0x4a0cac
mov edx, dword [esp + 0x3c]
test edx, edx
je 0x4a2fa5
mov eax, dword [esi + 0x44]
push ecx
mov dword [esp + 0xf4], eax
mov ecx, esi
inc eax
push 0
mov dword [esi + 0x44], eax
call fcn.00499af0
mov ecx, dword [edi + 0x20]
add esp, 8
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x94], ecx
cmp dword [eax + 0x54], ecx
jg 0x4a169b
mov ecx, edi
call fcn.00463310
test eax, eax
je 0x4a1694
mov eax, 1
mov dword [esp + 0x94], eax
jmp 0x4a16d6
mov ecx, dword [esp + 0x94]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x3a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x94]
mov edx, dword [edi + 4]
mov ecx, dword [edi]
test edx, edx
je 0x4a1738
cmp byte [ecx + 0x41], 0
jne 0x4a1738
cmp dword [esp + 0x94], 0
jge 0x4a16f3
mov eax, dword [edi + 0x20]
dec eax
lea eax, [eax + eax*4]
lea edx, [edx + eax*4]
mov dword [esp + 0x1c], edx
mov edx, dword [edi + 4]
push dword [edx + eax*4 + 0x10]
movsx edx, byte [edx + eax*4 + 1]
call fcn.00463a10
mov eax, dword [esp + 0x20]
add esp, 4
mov edx, dword [esp + 0x9c]
mov dword [eax + 0x10], 0
test edx, edx
jne 0x4a172f
mov dword [eax + 0x10], edx
mov byte [eax + 1], dl
jmp 0x4a174d
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xfa
jmp 0x4a174d
mov edx, dword [esp + 0x9c]
push edx
mov edx, 0xfffffffa
call fcn.00463a10
add esp, 4
mov eax, dword [esi + 0x48]
inc eax
mov dword [esp + 0x7c], eax
inc eax
mov dword [esp + 0xb4], eax
inc eax
mov dword [esi + 0x48], eax
mov ecx, dword [edi + 0x18]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], ecx
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x30], edx
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea eax, [edx - 1]
test edx, eax
jne 0x4a17a2
lea eax, [edx*8 + 4]
mov edx, dword [ecx + 0x70]
mov ecx, dword [ecx]
push 0
push eax
call fcn.00444ee0
mov ecx, dword [esp + 0x24]
add esp, 8
mov edx, dword [esp + 0x30]
mov dword [ecx + 0x70], eax
mov eax, dword [ecx + 0x70]
test eax, eax
je 0x4a17b0
mov dword [eax + edx*4], 0xffffffff
inc dword [esi + 0x48]
or eax, 0xffffffff
mov ecx, dword [edi + 0x18]
sub eax, edx
mov dword [esp + 0xb8], eax
mov eax, dword [esi + 0x48]
mov dword [esp + 0x30], eax
mov edx, dword [ecx + 0x6c]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x60], edx
lea eax, [edx + 1]
mov dword [ecx + 0x6c], eax
lea eax, [edx - 1]
test edx, eax
jne 0x4a1803
lea eax, [edx*8 + 4]
mov edx, dword [ecx + 0x70]
mov ecx, dword [ecx]
push 0
push eax
call fcn.00444ee0
mov ecx, dword [esp + 0x24]
add esp, 8
mov edx, dword [esp + 0x60]
mov dword [ecx + 0x70], eax
mov eax, dword [ecx + 0x70]
test eax, eax
je 0x4a1811
mov dword [eax + edx*4], 0xffffffff
or eax, 0xffffffff
sub eax, edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x60], eax
mov eax, dword [esi + 0x48]
lea ecx, [eax + 1]
mov dword [esp + 0x84], ecx
mov ecx, dword [edx]
add ecx, eax
mov dword [esi + 0x48], ecx
lea eax, [ecx + 1]
mov dword [esp + 0x98], eax
mov eax, dword [edx]
add eax, ecx
mov dword [esi + 0x48], eax
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x4a1861
mov ecx, edi
call fcn.00463310
test eax, eax
jne 0x4a1898
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0xb4]
mov word [eax + ecx*4], 0x17
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x4a18b6
mov ecx, edi
call fcn.00463310
test eax, eax
jne 0x4a18ea
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x7c]
mov word [eax + ecx*4], 0x17
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esp + 0x3c]
mov eax, dword [ecx]
mov ecx, dword [esp + 0x84]
dec ecx
add eax, ecx
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x74], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x4a191c
mov ecx, edi
call fcn.00463310
test eax, eax
jne 0x4a1953
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x84]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x74]
mov word [eax + ecx*4], 0x1a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x4a1971
mov ecx, edi
call fcn.00463310
test eax, eax
jne 0x4a19a5
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x60]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0xc]
mov ecx, 0x100
mov edx, dword [esp + 0x34]
neg eax
push 0
sbb eax, eax
and eax, 0x800
or ax, cx
mov ecx, esi
movzx eax, ax
push eax
push 0
push dword [esp + 0x48]
push dword [esp + 0x9c]
call fcn.004b3170
mov edx, eax
add esp, 0x14
mov dword [esp + 0x8c], edx
test edx, edx
je 0x4a0cac
mov ecx, dword [esp + 0x3c]
movsx eax, byte [edx + 0x24]
cmp eax, dword [ecx]
jne 0x4a1a03
xor eax, eax
mov dword [esp + 0x38], eax
jmp 0x4a1ecb
cmp byte [esp + 0x1b], 0
je 0x4a1a19
mov eax, dword [esp + 0x24]
test byte [eax + 6], 1
mov eax, str.DISTINCT
je 0x4a1a1e
mov eax, str.GROUP_BY
cmp byte [esi + 0x1be], 2
jne 0x4a1a62
mov esi, dword [esi + 8]
push eax
mov eax, dword [esp + 0x24]
push str.USE_TEMP_B_TREE_FOR__s
push dword [eax]
call fcn.004468e0
add esp, 0xc
mov edx, 0xa0
mov ecx, esi
push 0xffffffffffffffff
push eax
mov eax, dword [esp + 0x28]
push 0
push 0
push dword [eax + 0x1cc]
call fcn.00463530
mov esi, dword [esp + 0x34]
add esp, 0x14
mov eax, dword [esp + 0x3c]
mov edx, dword [esp + 0x10c]
mov dword [esp + 0x38], 1
mov eax, dword [eax]
mov ecx, eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x80], eax
test edx, edx
jle 0x4a1aa4
mov eax, dword [esp + 0x108]
add eax, 0xc
cmp dword [eax], ecx
jl 0x4a1a9e
inc dword [esp + 0x80]
inc ecx
add eax, 0x18
dec edx
jne 0x4a1a92
mov ecx, dword [esi + 0x38]
mov edx, dword [esp + 0x80]
mov eax, dword [esi + 0x3c]
mov dword [esp + 0x40], eax
cmp edx, ecx
jg 0x4a1ac5
add eax, edx
sub ecx, edx
mov dword [esi + 0x3c], eax
mov dword [esi + 0x38], ecx
jmp 0x4a1ad4
mov eax, dword [esi + 0x48]
lea ecx, [eax + 1]
add eax, edx
mov dword [esp + 0x40], ecx
mov dword [esi + 0x48], eax
mov ecx, esi
call fcn.00479e00
mov edx, dword [esp + 0x3c]
push 0
push dword [esp + 0x44]
call fcn.0047b2c0
mov ecx, dword [esp + 0x114]
add esp, 8
mov dword [esp + 0x14], 0
test ecx, ecx
jle 0x4a1be9
xor edx, edx
mov dword [esp + 0x74], edx
lea ebx, [ebx]
mov eax, dword [esp + 0x108]
mov edi, dword [esp + 0x64]
cmp dword [edx + eax + 0xc], edi
mov edi, dword [esp + 0x70]
jl 0x4a1bd1
mov edx, dword [edx + eax + 4]
mov dword [esp + 0x5c], edx
mov edx, dword [esp + 0x74]
mov ecx, dword [edx + eax + 8]
mov eax, dword [edx + eax]
xor edx, edx
mov dword [esp + 0x88], ecx
lea ecx, [esi + 0x74]
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], ecx
cmp dword [ecx + 0xc], 0
mov eax, dword [esp + 0x5c]
jle 0x4a1b73
cmp dword [ecx], eax
jne 0x4a1b73
movsx eax, word [ecx + 4]
cmp eax, dword [esp + 0x88]
je 0x4a1c03
mov eax, dword [esp + 0x5c]
inc edx
add ecx, 0x14
mov dword [esp + 0x1c], ecx
cmp edx, 0xa
jl 0x4a1b50
mov ecx, dword [esp + 0x40]
add ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x10]
push ecx
push dword [esp + 0x8c]
mov ecx, dword [esi + 8]
push eax
call fcn.00479c50
mov eax, dword [esp + 0x4c]
add esp, 0xc
add eax, dword [esp + 0x64]
mov ecx, esi
mov edx, dword [esp + 0x5c]
push eax
push dword [esp + 0x8c]
call fcn.004799b0
add esp, 8
mov edi, dword [esp + 0x70]
inc dword [esp + 0x64]
mov ecx, dword [esp + 0x10c]
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x14]
add edx, 0x18
inc eax
mov dword [esp + 0x74], edx
mov dword [esp + 0x14], eax
cmp eax, ecx
jl 0x4a1b10
mov al, byte [esi + 0x13]
test al, al
jne 0x4a1c96
inc dword [esi + 0x48]
mov ecx, dword [esi + 0x48]
mov dword [esp + 0x5c], ecx
jmp 0x4a1ca6
mov eax, dword [esi + 0x68]
mov dword [ecx + 0x10], eax
inc dword [esi + 0x68]
mov edx, dword [ecx + 0xc]
mov ecx, esi
call fcn.00479bb0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x40]
add ecx, dword [esp + 0x64]
mov esi, dword [esp + 0x20]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x88], eax
cmp ecx, eax
je 0x4a1bc2
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x1c], ecx
cmp dword [eax + 0x54], ecx
jg 0x4a1c56
mov ecx, edi
call fcn.00463310
test eax, eax
jne 0x4a1bc2
mov ecx, dword [esp + 0x1c]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x88]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x40]
add edx, dword [esp + 0x64]
mov word [eax + ecx*4], 0x20
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4a1bbe
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0x18]
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x10], ecx
cmp dword [eax + 0x54], ecx
jg 0x4a1cc4
mov ecx, edi
call fcn.00463310
test eax, eax
jne 0x4a1cfb
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x40]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x80]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x5c]
mov word [eax + ecx*4], 0x31
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0xf0]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x10], ecx
cmp dword [eax + 0x54], ecx
jg 0x4a1d24
mov ecx, edi
call fcn.00463310
test eax, eax
jne 0x4a1d5a
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x5c]
mov word [eax + ecx*4], 0x6e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4a1d5e
mov edx, dword [esp + 0x5c]
test edx, edx
je 0x4a1d92
mov al, byte [esi + 0x13]
mov byte [esp + 0x1b], al
cmp al, 8
jae 0x4a1d92
xor ecx, ecx
lea eax, [esi + 0x74]
cmp dword [eax + 0xc], edx
je 0x4a1d8e
inc ecx
add eax, 0x14
cmp ecx, 0xa
jl 0x4a1d72
movzx eax, byte [esp + 0x1b]
mov dword [esi + eax*4 + 0x18], edx
inc byte [esi + 0x13]
jmp 0x4a1d92
mov byte [eax + 6], 1
push dword [esp + 0x80]
mov edx, dword [esp + 0x44]
mov ecx, esi
call fcn.00479b00
mov eax, dword [esp + 0x84]
add esp, 4
cmp eax, dword [esi + 0x38]
jle 0x4a1dbd
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x40]
mov dword [esi + 0x3c], eax
mov ecx, dword [esp + 0x8c]
call fcn.004b3b10
mov eax, dword [esi + 0x44]
mov dword [esp + 0x64], eax
mov dword [esp + 0xf4], eax
inc eax
mov dword [esi + 0x44], eax
mov al, byte [esi + 0x13]
test al, al
jne 0x4a1dee
inc dword [esi + 0x48]
mov edx, dword [esi + 0x48]
mov dword [esp + 0x5c], edx
jmp 0x4a1dfe
dec al
mov byte [esi + 0x13], al
movzx eax, al
mov eax, dword [esi + eax*4 + 0x18]
mov dword [esp + 0x5c], eax
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x10], ecx
cmp dword [eax + 0x54], ecx
jg 0x4a1e1c
mov ecx, edi
call fcn.00463310
test eax, eax
jne 0x4a1e53
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x64]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x80]
mov word [eax + ecx*4], 0x3c
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0xf0]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x10], ecx
cmp dword [eax + 0x54], ecx
jg 0x4a1e7c
mov ecx, edi
call fcn.00463310
test eax, eax
jne 0x4a1eb0
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x14]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x68]
mov word [eax + ecx*4], 0x6b
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, esi
mov byte [esp + 0xed], 1
call fcn.00479e00
mov edx, dword [esp + 0x8c]
mov eax, 1
cmp dword [esp + 0xc], 0
je 0x4a1f3d
mov ecx, dword [esp + 0x28]
test byte [ecx + 0x3c], 4
jne 0x4a1f3d
test eax, eax
jne 0x4a1ee5
cmp byte [edx + 0x25], al
je 0x4a1f3d
mov eax, dword [esp + 0xd4]
mov dword [esp + 0xc0], 0
cmp eax, dword [edi + 0x20]
jge 0x4a1f3d
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
push dword [eax + ecx*4 + 0x10]
movsx edx, byte [eax + ecx*4 + 1]
lea esi, [eax + ecx*4]
mov ecx, dword [edi]
call fcn.00463a10
xorps xmm0, xmm0
add esp, 4
movdqu xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov byte [esi], 0x9f
mov eax, dword [edi + 0x20]
mov esi, dword [esp + 0x20]
dec eax
cmp dword [esp + 0xd4], eax
jne 0x4a1f3d
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0x20]
mov ecx, esi
mov dword [esp + 0x80], eax
call fcn.00479e00
cmp dword [esp + 0x38], 0
je 0x4a1fb2
mov eax, dword [esp + 0xf0]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x18]
mov dword [esp + 0x10], ecx
cmp dword [eax + 0x54], ecx
jg 0x4a1f7e
mov ecx, edi
call fcn.00463310
test eax, eax
jne 0x4a1fb2
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0xc]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x5c]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x64]
mov word [eax + ecx*4], 0x65
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [esp + 0x3c]
xor eax, eax
mov dword [esp + 0x74], eax
cmp dword [edx], eax
jle 0x4a20f3
xor ecx, ecx
mov dword [esp + 0x14], ecx
lea ebx, [ebx]
cmp dword [esp + 0x38], 0
je 0x4a20af
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a2073
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a1ffd
add eax, eax
jmp 0x4a2002
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a20d3
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2047
cmp eax, dword [ecx + 0x114]
jb 0x4a2047
cmp eax, dword [ecx + 0x118]
jae 0x4a2047
movzx ecx, word [ecx + 0xf8]
jmp 0x4a2053
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x3c]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x1c]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov esi, dword [esp + 0x20]
mov word [eax + ecx*4], 0x2f
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x64]
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x74]
mov dword [ecx + 8], eax
add eax, dword [esp + 0x98]
mov dword [ecx + 0xc], eax
jmp 0x4a20d7
add eax, dword [esp + 0x98]
mov byte [esp + 0xec], 1
mov edx, dword [edx + 4]
push eax
mov edx, dword [edx + ecx]
mov ecx, esi
call fcn.0047b190
mov edi, dword [esp + 0x74]
add esp, 4
mov edx, dword [esp + 0x3c]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x14]
inc eax
add ecx, 0x18
mov dword [esp + 0x74], eax
mov dword [esp + 0x14], ecx
cmp eax, dword [edx]
jl 0x4a1fd0
mov eax, dword [esp + 0x9c]
test eax, eax
je 0x4a2100
inc dword [eax]
mov ecx, dword [edi + 0x18]
mov eax, dword [edx]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], edx
jg 0x4a219a
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a2128
add eax, eax
jmp 0x4a212d
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a222e
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2172
cmp eax, dword [ecx + 0x114]
jb 0x4a2172
cmp eax, dword [ecx + 0x118]
jae 0x4a2172
movzx ecx, word [ecx + 0xf8]
jmp 0x4a217e
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [edi + 4], eax
mov eax, dword [edi + 4]
lea ecx, [edx + edx*4]
inc dword [edi + 0x20]
mov esi, dword [esp + 0x84]
mov dword [eax + ecx*4 + 4], esi
mov esi, dword [esp + 0x98]
mov dword [eax + ecx*4 + 8], esi
mov esi, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 0xc], esi
mov esi, dword [esp + 0x20]
mov word [eax + ecx*4], 0x2a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 4]
mov ecx, dword [edi]
test eax, eax
je 0x4a223e
cmp byte [ecx + 0x41], 0
jne 0x4a223e
test edx, edx
jns 0x4a21ef
mov edx, dword [edi + 0x20]
dec edx
lea eax, [edx + edx*4]
mov edx, dword [edi + 4]
lea edx, [edx + eax*4]
mov dword [esp + 0x10], edx
mov edx, dword [edi + 4]
push dword [edx + eax*4 + 0x10]
movsx edx, byte [edx + eax*4 + 1]
call fcn.00463a10
mov eax, dword [esp + 0x14]
add esp, 4
mov edx, dword [esp + 0x9c]
mov dword [eax + 0x10], 0
test edx, edx
jne 0x4a2235
mov dword [eax + 0x10], edx
mov byte [eax + 1], dl
jmp 0x4a2253
mov edx, 1
jmp 0x4a21d8
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xfa
jmp 0x4a2253
mov edx, dword [esp + 0x9c]
push edx
mov edx, 0xfffffffa
call fcn.00463a10
add esp, 4
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x1c], edx
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], edx
jg 0x4a22e7
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a2275
add eax, eax
jmp 0x4a227a
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a2315
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a22bf
cmp eax, dword [ecx + 0x114]
jb 0x4a22bf
cmp eax, dword [ecx + 0x118]
jae 0x4a22bf
movzx ecx, word [ecx + 0xf8]
jmp 0x4a22cb
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
mov dword [edi + 4], eax
mov eax, dword [edi + 4]
lea ecx, [edx + edx*4]
inc dword [edi + 0x20]
mov word [eax + ecx*4], 0x2b
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
lea eax, [edx + 1]
mov dword [ecx + 8], 0
mov dword [ecx + 4], eax
mov dword [ecx + 0xc], eax
mov dword [ecx + 0x10], 0
mov edx, dword [esi + 8]
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x74], edx
mov ecx, dword [edx + 0x18]
mov eax, dword [eax]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 0x20]
mov dword [esp + 0x88], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a23c4
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a234b
add eax, eax
jmp 0x4a2350
mov eax, 0x33
mov edx, dword [edx + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a2400
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2395
cmp eax, dword [ecx + 0x114]
jb 0x4a2395
cmp eax, dword [ecx + 0x118]
jae 0x4a2395
movzx ecx, word [ecx + 0xf8]
jmp 0x4a23a1
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x10]
mov dword [edx + 4], eax
mov eax, dword [esp + 0x88]
inc dword [edx + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x98]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x84]
mov dword [eax + ecx*4 + 8], edx
mov edx, dword [esp + 0x14]
mov word [eax + ecx*4], 0x1e
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 0xc], edx
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4a2404
mov edx, dword [esp + 0x14]
push edx
mov edx, dword [esp + 0x9c]
mov ecx, esi
call fcn.00479b00
mov ecx, dword [edi + 0x18]
add esp, 4
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a24aa
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a2438
add eax, eax
jmp 0x4a243d
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a24e1
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2482
cmp eax, dword [ecx + 0x114]
jb 0x4a2482
cmp eax, dword [ecx + 0x118]
jae 0x4a2482
movzx ecx, word [ecx + 0xf8]
jmp 0x4a248e
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xb8]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a2575
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a2503
add eax, eax
jmp 0x4a2508
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a25ac
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a254d
cmp eax, dword [ecx + 0x114]
jb 0x4a254d
cmp eax, dword [ecx + 0x118]
jae 0x4a254d
movzx ecx, word [ecx + 0xf8]
jmp 0x4a2559
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0xb4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x68]
mov word [eax + ecx*4], 0x8a
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a2640
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a25ce
add eax, eax
jmp 0x4a25d3
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a2674
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2618
cmp eax, dword [ecx + 0x114]
jb 0x4a2618
cmp eax, dword [ecx + 0x118]
jae 0x4a2618
movzx ecx, word [ecx + 0xf8]
jmp 0x4a2624
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x30]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x60]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov edx, dword [edi + 0x20]
mov eax, dword [esp + 0x1c]
cmp edx, eax
jbe 0x4a2689
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov dword [eax + ecx*4 + 8], edx
mov ecx, dword [edi + 0x20]
lea edx, [esp + 0xec]
mov eax, dword [edi + 0x18]
dec ecx
mov dword [eax + 0x58], ecx
mov ecx, esi
call fcn.004a05b0
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a2735
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a26c3
add eax, eax
jmp 0x4a26c8
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a2769
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a270d
cmp eax, dword [ecx + 0x114]
jb 0x4a270d
cmp eax, dword [ecx + 0x118]
jae 0x4a270d
movzx ecx, word [ecx + 0xf8]
jmp 0x4a2719
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x7c]
mov word [eax + ecx*4], 0x17
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
cmp dword [esp + 0x38], 0
je 0x4a284c
mov ecx, dword [edi + 0x18]
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a2813
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a27a1
add eax, eax
jmp 0x4a27a6
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a28a5
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a27eb
cmp eax, dword [ecx + 0x114]
jb 0x4a27eb
cmp eax, dword [ecx + 0x118]
jae 0x4a27eb
movzx ecx, word [ecx + 0xf8]
jmp 0x4a27f7
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x1c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x80]
mov word [eax + ecx*4], 4
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4a28a5
mov ecx, dword [esp + 0x8c]
call fcn.004b3b10
mov eax, dword [esp + 0x94]
cmp eax, dword [edi + 0x20]
jge 0x4a28a5
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
push dword [eax + ecx*4 + 0x10]
movsx edx, byte [eax + ecx*4 + 1]
lea esi, [eax + ecx*4]
mov ecx, dword [edi]
call fcn.00463a10
xorps xmm0, xmm0
add esp, 4
movdqu xmmword [esi], xmm0
mov dword [esi + 0x10], 0
mov byte [esi], 0x9f
mov eax, dword [edi + 0x20]
mov esi, dword [esp + 0x20]
dec eax
cmp dword [esp + 0x94], eax
jne 0x4a28a5
mov dword [edi + 0x20], eax
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a2939
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a28c7
add eax, eax
jmp 0x4a28cc
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a2970
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2911
cmp eax, dword [ecx + 0x114]
jb 0x4a2911
cmp eax, dword [ecx + 0x118]
jae 0x4a2911
movzx ecx, word [ecx + 0xf8]
jmp 0x4a291d
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x2c]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xb8]
mov word [eax + ecx*4], 0xf
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a2a04
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a2992
add eax, eax
jmp 0x4a2997
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a2a38
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a29dc
cmp eax, dword [ecx + 0x114]
jb 0x4a29dc
cmp eax, dword [ecx + 0x118]
jae 0x4a29dc
movzx ecx, word [ecx + 0xf8]
jmp 0x4a29e8
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x68]
mov word [eax + ecx*4], 0xe
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a2acc
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a2a5a
add eax, eax
jmp 0x4a2a5f
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a2b03
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2aa4
cmp eax, dword [ecx + 0x114]
jb 0x4a2aa4
cmp eax, dword [ecx + 0x118]
jae 0x4a2aa4
movzx ecx, word [ecx + 0xf8]
jmp 0x4a2ab0
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x1c]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0xb4]
mov word [eax + ecx*4], 0x17
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], 1
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a2b97
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a2b25
add eax, eax
jmp 0x4a2b2a
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a2bcb
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2b6f
cmp eax, dword [ecx + 0x114]
jb 0x4a2b6f
cmp eax, dword [ecx + 0x118]
jae 0x4a2b6f
movzx ecx, word [ecx + 0xf8]
jmp 0x4a2b7b
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
or ecx, 0xffffffff
sub ecx, dword [esp + 0xb8]
mov dword [esp + 0x10], eax
js 0x4a2beb
mov edx, dword [eax + 0x70]
test edx, edx
je 0x4a2beb
mov eax, dword [edi + 0x20]
mov dword [edx + ecx*4], eax
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 0x20]
dec eax
mov dword [ecx + 0x58], eax
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x20]
mov dword [esp + 0x14], edx
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], edx
jg 0x4a2c8a
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a2c18
add eax, eax
jmp 0x4a2c1d
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a2cbc
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2c62
cmp eax, dword [ecx + 0x114]
jb 0x4a2c62
cmp eax, dword [ecx + 0x118]
jae 0x4a2c62
movzx ecx, word [ecx + 0xf8]
jmp 0x4a2c6e
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov dword [edi + 4], eax
mov eax, dword [edi + 4]
lea ecx, [edx + edx*4]
inc dword [edi + 0x20]
mov word [eax + ecx*4], 0x8a
mov byte [eax + ecx*4 + 3], 0
lea ecx, [eax + ecx*4]
mov eax, dword [esp + 0x7c]
mov dword [ecx + 0xc], 0
mov dword [ecx + 4], eax
lea eax, [edx + 2]
mov dword [ecx + 8], eax
mov dword [ecx + 0x10], 0
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
mov dword [esp + 0x7c], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a2d50
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a2cde
add eax, eax
jmp 0x4a2ce3
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a2d84
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2d28
cmp eax, dword [ecx + 0x114]
jb 0x4a2d28
cmp eax, dword [ecx + 0x118]
jae 0x4a2d28
movzx ecx, word [ecx + 0xf8]
jmp 0x4a2d34
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x7c]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
lea edx, [esp + 0xec]
mov ecx, esi
call fcn.004a04a0
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x90]
inc esi
mov ecx, dword [esp + 0x20]
push 0x10
push esi
call fcn.0047b8d0
push dword [esp + 0x24]
lea eax, [esp + 0xac]
push esi
push dword [ebp + 8]
mov esi, dword [esp + 0x34]
mov ecx, esi
push eax
lea eax, [esp + 0xd8]
push eax
mov eax, dword [esp + 0x40]
mov edx, eax
push 0xffffffffffffffff
push dword [eax]
call fcn.00498ed0
mov ecx, dword [edi + 0x18]
add esp, 0x24
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a2e6e
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a2dfc
add eax, eax
jmp 0x4a2e01
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a2ea2
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2e46
cmp eax, dword [ecx + 0x114]
jb 0x4a2e46
cmp eax, dword [ecx + 0x118]
jae 0x4a2e46
movzx ecx, word [ecx + 0xf8]
jmp 0x4a2e52
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x2c]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
or ecx, 0xffffffff
sub ecx, dword [esp + 0x60]
mov dword [esp + 0x10], eax
js 0x4a2ebf
mov edx, dword [eax + 0x70]
test edx, edx
je 0x4a2ebf
mov eax, dword [edi + 0x20]
mov dword [edx + ecx*4], eax
mov eax, dword [edi + 0x20]
lea edx, [esp + 0xec]
mov ecx, dword [esp + 0x10]
dec eax
mov dword [ecx + 0x58], eax
mov ecx, esi
call fcn.004a03b0
mov ecx, dword [edi + 0x18]
mov eax, dword [edi + 0x20]
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ecx
cmp dword [ecx + 0x54], eax
jg 0x4a2f6c
mov eax, dword [ecx + 0x54]
test eax, eax
je 0x4a2efa
add eax, eax
jmp 0x4a2eff
mov eax, 0x33
mov edx, dword [edi + 4]
lea eax, [eax + eax*4]
mov ecx, dword [ecx]
shl eax, 2
push 0
push eax
call fcn.00444e00
add esp, 8
mov dword [esp + 0x10], eax
test eax, eax
je 0x4a3381
mov ecx, dword [esp + 0xc]
mov ecx, dword [ecx]
test ecx, ecx
je 0x4a2f44
cmp eax, dword [ecx + 0x114]
jb 0x4a2f44
cmp eax, dword [ecx + 0x118]
jae 0x4a2f44
movzx ecx, word [ecx + 0xf8]
jmp 0x4a2f50
push eax
call dword [0x5c17a0]
mov ecx, eax
add esp, 4
mov eax, 0xcccccccd
mul ecx
mov eax, dword [esp + 0xc]
shr edx, 4
mov dword [eax + 0x54], edx
mov eax, dword [esp + 0x10]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x14]
inc dword [edi + 0x20]
lea ecx, [eax + eax*4]
mov eax, dword [edi + 4]
mov edx, dword [esp + 0x30]
mov word [eax + ecx*4], 0x10
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
jmp 0x4a3381
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0xec]
mov dword [esp + 0x7c], 0
call fcn.0049ee00
mov edx, eax
mov dword [esp + 0x2c], edx
test edx, edx
je 0x4a3223
mov ecx, dword [esi]
mov eax, dword [edx + 0x40]
mov dword [esp + 0x10], ecx
mov ecx, 0xfff0bdc0
mov dword [esp + 0x38], ecx
test eax, eax
je 0x4a3019
mov eax, dword [esi]
xor ecx, ecx
mov dword [esp + 0x38], ecx
cmp dword [eax + 0x14], ecx
jle 0x4a3019
mov eax, dword [eax + 0x10]
mov edi, dword [edx + 0x40]
add eax, 0xc
mov esi, dword [esp + 0x10]
jmp 0x4a3000
cmp dword [eax], edi
je 0x4a300d
inc ecx
add eax, 0x10
cmp ecx, dword [esi + 0x14]
jl 0x4a3000
mov edi, dword [esp + 0x70]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x38], ecx
mov eax, dword [esi + 0x44]
mov dword [esp + 0x60], eax
inc eax
mov dword [esi + 0x44], eax
xor eax, eax
mov dword [esp + 0x30], eax
mov dword [esp + 0x84], eax
mov eax, dword [edx + 0x1c]
mov edx, ecx
mov ecx, esi
mov dword [esp + 0xc], eax
call fcn.00485cc0
mov eax, dword [esp + 0x2c]
mov ecx, esi
mov edx, dword [esp + 0x38]
push dword [eax]
push 0
push dword [eax + 0x1c]
call fcn.0047fd70
mov eax, dword [esp + 0x38]
add esp, 0xc
test byte [eax + 0x2a], 0x20
je 0x4a308f
mov ecx, dword [eax + 8]
mov dword [esp + 0x84], ecx
test ecx, ecx
je 0x4a3091
mov eax, dword [ecx + 0x34]
and al, 3
cmp al, 2
je 0x4a3082
mov ecx, dword [ecx + 0x14]
test ecx, ecx
jne 0x4a3072
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x84], ecx
jmp 0x4a3091
xor ecx, ecx
mov eax, dword [eax + 8]
test eax, eax
je 0x4a30d4
mov edi, dword [esp + 0x2c]
lea esp, [esp]
test byte [eax + 0x34], 4
jne 0x4a30c2
movzx edx, word [eax + 0x2c]
cmp dx, word [edi + 0x28]
jge 0x4a30c2
cmp dword [eax + 0x24], 0
jne 0x4a30c2
test ecx, ecx
je 0x4a30c0
cmp dx, word [ecx + 0x2c]
jge 0x4a30c2
mov ecx, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x4a30a0
mov edi, dword [esp + 0x70]
mov dword [esp + 0x84], ecx
test ecx, ecx
je 0x4a30ec
mov eax, dword [ecx + 0x28]
mov edx, ecx
mov ecx, esi
mov dword [esp + 0xc], eax
call fcn.004865f0
mov dword [esp + 0x30], eax
push 1
push dword [esp + 0x3c]
mov edx, 0x36
mov ecx, edi
push dword [esp + 0x14]
push dword [esp + 0x6c]
call fcn.004636a0
mov eax, dword [esp + 0x40]
add esp, 0x10
test eax, eax
je 0x4a3156
mov edx, dword [edi + 4]
mov ecx, dword [edi]
test edx, edx
je 0x4a3148
cmp byte [ecx + 0x41], 0
jne 0x4a3148
mov eax, dword [edi + 0x20]
dec eax
lea eax, [eax + eax*4]
push dword [edx + eax*4 + 0x10]
lea esi, [edx + eax*4]
movsx edx, byte [esi + 1]
call fcn.00463a10
mov eax, dword [esp + 0x34]
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xfa
mov esi, dword [esp + 0x24]
jmp 0x4a3153
push eax
mov edx, 0xfffffffa
call fcn.00463a10
add esp, 4
mov eax, dword [esp + 0x114]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x10], ecx
mov eax, dword [eax + 8]
mov dword [esp + 0xc], eax
mov eax, dword [edi + 0x18]
cmp dword [eax + 0x54], ecx
jg 0x4a3182
mov ecx, edi
call fcn.00463310
test eax, eax
jne 0x4a31b6
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x60]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0xc]
mov word [eax + ecx*4], 0x32
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x20]
mov dword [esp + 0x10], ecx
cmp dword [eax + 0x54], ecx
jg 0x4a31d4
mov ecx, edi
call fcn.00463310
test eax, eax
jne 0x4a3208
mov ecx, dword [esp + 0x10]
mov eax, dword [edi + 4]
lea ecx, [ecx + ecx*4]
inc dword [edi + 0x20]
mov edx, dword [esp + 0x60]
mov word [eax + ecx*4], 0x3d
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edx
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x84]
mov ecx, esi
mov edx, dword [esp + 0x2c]
push eax
call fcn.004a0ae0
add esp, 4
jmp 0x4a3331
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x30], eax
mov byte [esp + 0x1b], al
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x2c], 0
jne 0x4a329d
lea edx, [esp + 0x30]
lea ecx, [esp + 0xec]
call fcn.0049ed90
mov byte [esp + 0x1b], al
test al, al
je 0x4a3295
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
push 0
call fcn.00477620
mov edx, eax
add esp, 4
mov dword [esp + 0x60], edx
mov dword [esp + 0x7c], edx
test edx, edx
je 0x4a329d
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x41], 0
jne 0x4a329d
mov eax, dword [edx + 4]
cmp byte [esp + 0x1b], 1
setne cl
mov byte [eax + 0xc], cl
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov byte [eax], 0x9a
jmp 0x4a329d
mov eax, dword [esp + 0x30]
mov dword [esp + 0x60], eax
lea edx, [esp + 0xec]
mov ecx, esi
call fcn.004a03b0
mov al, byte [esp + 0x1b]
mov ecx, esi
mov edx, dword [esp + 0x34]
push 0
movzx eax, al
push eax
push 0
push dword [esp + 0x6c]
push dword [esp + 0x9c]
call fcn.004b3170
add esp, 0x14
mov dword [esp + 0xc], eax
test eax, eax
jne 0x4a32ec
mov edi, dword [esp + 0x28]
mov ecx, edi
mov edx, dword [esp + 0x7c]
call fcn.00477f20
jmp 0x4a0cb0
lea edx, [esp + 0xec]
mov ecx, esi
call fcn.004a05b0
mov eax, dword [esp + 0xc]
cmp byte [eax + 0x24], 0
jle 0x4a331c
push dword [eax + 0x34]
mov edx, 0xe
mov ecx, edi
push 0
call fcn.004634c0
mov eax, dword [esp + 0x14]
add esp, 8
mov ecx, eax
call fcn.004b3b10
lea edx, [esp + 0xec]
mov ecx, esi
call fcn.004a04a0
mov edx, dword [esp + 0x90]
mov ecx, esi
push 0x10
push dword [esp + 0x6c]
mov dword [esp + 0xc8], 0
call fcn.0047b8d0
mov eax, dword [esp + 0x70]
mov ecx, esi
push eax
push eax
push dword [ebp + 8]
mov eax, dword [esp + 0x38]
mov edx, eax
push 0
push 0
push 0xffffffffffffffff
push dword [eax]
call fcn.00498ed0
mov edx, dword [esp + 0xa0]
add esp, 0x24
mov ecx, dword [esp + 0x28]
call fcn.00477f20
mov eax, dword [edi + 0x18]
or ecx, 0xffffffff
sub ecx, dword [esp + 0x68]
mov dword [esp + 0x10], eax
js 0x4a339e
mov edx, dword [eax + 0x70]
test edx, edx
je 0x4a339e
mov eax, dword [edi + 0x20]
mov dword [edx + ecx*4], eax
mov eax, dword [edi + 0x20]
mov ecx, dword [esp + 0x10]
dec eax
mov dword [ecx + 0x58], eax
mov eax, dword [esp + 0x6c]
cmp al, 3
jne 0x4a34c0
cmp byte [esi + 0x1be], 2
jne 0x4a34c0
mov eax, dword [esi + 8]
push str.DISTINCT
push str.USE_TEMP_B_TREE_FOR__s
push dword [esi]
mov dword [esp + 0x44], eax
call fcn.004468e0
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov edi, dword [esi + 0x1cc]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x10], edx
cmp dword [eax + 0x54], edx
jg 0x4a3412
call fcn.00463310
test eax, eax
je 0x4a340a
mov edx, 1
jmp 0x4a3446
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
inc dword [ecx + 0x20]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 4]
mov word [eax + ecx*4], 0xa0
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x38]
mov edi, dword [eax + 4]
test edi, edi
mov ecx, dword [eax]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x70]
je 0x4a34b0
cmp byte [ecx + 0x41], 0
jne 0x4a34b0
test edx, edx
jns 0x4a3469
mov edx, dword [eax + 0x20]
dec edx
lea eax, [edx + edx*4]
mov edx, dword [esp + 0xc]
lea edx, [edx + eax*4]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xc]
push dword [edx + eax*4 + 0x10]
movsx edx, byte [edx + eax*4 + 1]
call fcn.00463a10
mov eax, dword [esp + 0x14]
add esp, 4
mov edx, dword [esp + 0x14]
mov dword [eax + 0x10], 0
test edx, edx
jne 0x4a34a7
mov dword [eax + 0x10], edx
mov byte [eax + 1], dl
jmp 0x4a34c0
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xff
jmp 0x4a34c0
mov edx, dword [esp + 0x14]
push edx
or edx, 0xffffffff
call fcn.00463a10
add esp, 4
cmp dword [esp + 0xc0], 0
je 0x4a3609
cmp byte [esi + 0x1be], 2
jne 0x4a35ea
mov eax, dword [esi + 8]
mov ecx, str.ORDER_BY
cmp dword [esp + 0xc4], 0
mov dword [esp + 0x38], eax
mov eax, str.RIGHT_PART_OF_ORDER_BY
cmovle eax, ecx
push eax
push str.USE_TEMP_B_TREE_FOR__s
push dword [esi]
call fcn.004468e0
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov edi, dword [esi + 0x1cc]
mov dword [esp + 0x14], eax
mov eax, dword [ecx + 0x18]
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x10], edx
cmp dword [eax + 0x54], edx
jg 0x4a353c
call fcn.00463310
test eax, eax
je 0x4a3534
mov edx, 1
jmp 0x4a3570
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x38]
inc dword [ecx + 0x20]
lea ecx, [edx + edx*4]
mov eax, dword [eax + 4]
mov word [eax + ecx*4], 0xa0
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 4], edi
mov dword [eax + ecx*4 + 8], 0
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov eax, dword [esp + 0x38]
mov edi, dword [eax + 4]
test edi, edi
mov ecx, dword [eax]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x70]
je 0x4a35da
cmp byte [ecx + 0x41], 0
jne 0x4a35da
test edx, edx
jns 0x4a3593
mov edx, dword [eax + 0x20]
dec edx
lea eax, [edx + edx*4]
mov edx, dword [esp + 0xc]
lea edx, [edx + eax*4]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xc]
push dword [edx + eax*4 + 0x10]
movsx edx, byte [edx + eax*4 + 1]
call fcn.00463a10
mov eax, dword [esp + 0x14]
add esp, 4
mov edx, dword [esp + 0x14]
mov dword [eax + 0x10], 0
test edx, edx
jne 0x4a35d1
mov dword [eax + 0x10], edx
mov byte [eax + 1], dl
jmp 0x4a35ea
mov dword [eax + 0x10], edx
mov byte [eax + 1], 0xff
jmp 0x4a35ea
mov edx, dword [esp + 0x14]
push edx
or edx, 0xffffffff
call fcn.00463a10
add esp, 4
mov eax, dword [esp + 0x78]
mov ecx, esi
push dword [ebp + 8]
mov edx, dword [esp + 0x28]
push dword [eax]
lea eax, [esp + 0xc8]
push eax
call fcn.00499c00
add esp, 0xc
mov edx, dword [edi + 0x18]
or eax, 0xffffffff
sub eax, dword [esp + 0xbc]
mov dword [esp + 0xbc], eax
js 0x4a3637
mov ecx, dword [edx + 0x70]
test ecx, ecx
je 0x4a3637
mov esi, dword [esp + 0xbc]
mov eax, dword [edi + 0x20]
mov dword [ecx + esi*4], eax
mov esi, dword [esp + 0x20]
mov eax, dword [edi + 0x20]
mov edi, dword [esp + 0x28]
dec eax
mov dword [edx + 0x58], eax
xor eax, eax
cmp dword [esi + 0x40], eax
setg al
mov dword [esp + 0x14], eax
jmp 0x4a0cb5
mov esi, dword [esp + 0x20]
jmp 0x4a0cac
mov eax, 1
mov edi, ecx
jmp 0x4a0cb9
mov edx, dword [esp + 0x34]
mov edi, dword [esp + 0x28]
mov eax, 1
jmp 0x4a0cb9
cmp esi, dword [edi + 0x114]
jb 0x4a36a0
cmp esi, dword [edi + 0x118]
jae 0x4a36a0
mov eax, dword [edi + 0x110]
mov dword [esi], eax
dec dword [edi + 0xfc]
mov dword [edi + 0x110], esi
jmp 0x4a36f8
cmp dword [0x5c1770], 0
je 0x4a36ee
mov eax, dword [0x647f28]
test eax, eax
je 0x4a36bc
push eax
call dword [0x5c17c4]
add esp, 4
push esi
call dword [0x5c17a0]
sub dword [0x647f68], eax
add esp, 4
dec dword [0x647f8c]
push esi
call dword [0x5c1798]
mov eax, dword [0x647f28]
add esp, 4
test eax, eax
je 0x4a36f8
push eax
call dword [0x5c17cc]
jmp 0x4a36f5
push esi
call dword [0x5c1798]
add esp, 4
mov edx, dword [esp + 0x114]
test edx, edx
je 0x4a3754
cmp dword [edi + 0x208], 0
je 0x4a371d
mov ecx, edi
call fcn.00444aa0
mov eax, dword [esp + 0x14]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
cmp edx, dword [edi + 0x114]
jb 0x4a374b
cmp edx, dword [edi + 0x118]
jae 0x4a374b
mov eax, dword [edi + 0x110]
mov dword [edx], eax
dec dword [edi + 0xfc]
mov eax, dword [esp + 0x14]
mov dword [edi + 0x110], edx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push edx
call fcn.00444a30
add esp, 4
mov eax, dword [esp + 0x14]
pop edi
pop esi
mov esp, ebp
pop ebp
ret
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret