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

Disassembly:
sub esp, 0xc4
push esi
mov esi, ecx
mov al, byte [esi + 0x18]
test al, al
mov byte [esp + 0x13], 0
je 0x3008ce21
xor al, al
pop esi
add esp, 0xc4
ret 0x14
mov eax, dword [esp + 0xd8]
and eax, dword [esp + 0xdc]
cmp eax, 0xffffffff
push ebp
mov ebp, dword [esp + 0xd0]
jne 0x3008ce6c
mov ecx, esi
call fcn.3008c260
mov edx, dword [ebp]
push 1
push 0
push 0
mov ecx, ebp
mov byte [esp + 0x23], 1
call dword [edx + 0xc]
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x1c]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], edx
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd8]
mov dword [esi + 0x15470], eax
sub eax, 1
mov dword [esp + 0x64], eax
mov eax, ecx
sbb eax, 0
push ebx
mov dword [esi + 0x15474], ecx
mov byte [esp + 0xf], 0
mov dword [esp + 0x6c], eax
push edi
lea ecx, [ecx]
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x18]
cmp edx, dword [esp + 0x70]
jl 0x3008cec8
jg 0x3008ceb6
cmp eax, dword [esp + 0x6c]
jb 0x3008cec8
mov eax, dword [esi + 0x15468]
or eax, dword [esi + 0x1546c]
je 0x3008ef5a
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x18]
cmp eax, dword [esp + 0xe4]
jne 0x3008cee6
cmp edx, dword [esp + 0xe8]
je 0x3008ee54
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x18]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
call fcn.3008bef0
mov ebx, edx
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
mov edi, eax
call fcn.3008bef0
test ebx, ebx
mov dword [esp + 0x24], eax
jl 0x3008ef63
jg 0x3008cf2e
test edi, edi
jbe 0x3008ef63
cmp edi, 1
jne 0x3008cf62
test ebx, ebx
jne 0x3008cf62
lea eax, [esp + 0x13]
push eax
push 8
push ebp
mov ecx, esi
call fcn.3008bef0
mov ebx, edx
test ebx, ebx
mov edi, eax
jl 0x3008f287
jg 0x3008cf5c
test edi, edi
jb 0x3008f287
add edi, 0xfffffff8
adc ebx, 0xffffffff
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
add ecx, edi
adc eax, ebx
add edi, 0xfffffff8
mov dword [esp + 0x3c], eax
mov al, byte [esp + 0x13]
adc ebx, 0xffffffff
test al, al
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
jne 0x3008f28b
mov eax, dword [esp + 0x24]
cmp eax, 0x6d6f6f76
ja 0x3008da49
je 0x3008eeb6
cmp eax, 0x64736370
ja 0x3008d285
je 0x3008e66d
cmp eax, 0x636f3634
ja 0x3008d0fd
je 0x3008d113
cmp eax, 0x61757468
je 0x3008e66d
cmp eax, 0x61766343
je 0x3008ef82
cmp eax, 0x6368706c
jne 0x3008ee34
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x3008f287
mov eax, dword [esi + 0x14]
test eax, eax
jne 0x3008ee34
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
or eax, edx
jne 0x3008ee34
mov edx, dword [ebp]
push 0
push 0
push 3
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
mov edi, eax
mov ecx, eax
imul ecx, ecx, 0x108
push ecx
mov dword [esi + 0x10], edi
call fcn.3007a1f0
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x3008d064
push 0x3008bc60
push edi
push pe_nt_image_headers32
push ebx
call fcn.30001050
jmp 0x3008d066
xor ebx, ebx
mov eax, dword [esi + 0x10]
test eax, eax
mov dword [esi + 0x14], ebx
mov dword [esp + 0x34], 0
jbe 0x3008ee34
xor edi, edi
mov edi, edi
lea edx, [esp + 0x13]
push edx
push 8
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x14]
mov dword [edi + ecx], eax
mov dword [edi + ecx + 4], edx
mov eax, dword [esi + 0x14]
mov ecx, dword [edi + eax + 4]
test ecx, ecx
jl 0x3008f287
jg 0x3008d0b4
cmp dword [edi + eax], 0
jb 0x3008f287
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x14]
mov ebx, eax
mov eax, dword [ebp]
push 0
lea edx, [edi + ecx + 8]
push ebx
push edx
mov ecx, ebp
call dword [eax + 0x10]
mov eax, dword [esi + 0x14]
add eax, edi
mov byte [eax + ebx + 8], 0
mov eax, dword [esp + 0x34]
mov ecx, dword [esi + 0x10]
inc eax
add edi, 0x108
cmp eax, ecx
mov dword [esp + 0x34], eax
jb 0x3008d080
jmp 0x3008ee34
cmp eax, 0x63707274
je 0x3008e66d
cmp eax, 0x63747473
jne 0x3008ee34
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x3008f287
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
or eax, edx
jne 0x3008ee34
mov edx, dword [ebp]
xor edi, edi
push edi
push edi
push 3
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ebx, eax
cmp ebx, edi
je 0x3008f287
cmp ebx, 0x155555
ja 0x3008f287
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add eax, 0xfffffff8
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
adc edx, 0xffffffff
cmp eax, 0x73747363
mov dword [esp + 0x18], edx
ja 0x3008ea2e
je 0x3008e88c
cmp eax, 0x636f3634
je 0x3008d1b3
cmp eax, 0x63747473
je 0x3008e78f
cmp eax, 0x7374636f
jne 0x3008ee34
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11fac]
cmp ecx, edi
lea eax, [eax + esi + 0x11fac]
jne 0x3008f287
lea ecx, [ebx*8]
push ecx
mov dword [eax], ebx
call fcn.3007a1f0
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
add esp, 4
cmp ebx, edi
mov dword [edx + esi + 0x11fb0], eax
mov dword [esp + 0x20], edi
jbe 0x3008d49d
jmp 0x3008d210
cmp dword [esp + 0x24], 0x636f3634
lea eax, [esp + 0x13]
mov ecx, esi
push eax
jne 0x3008e842
push 8
push ebp
shl edi, 3
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov ecx, dword [ecx + esi + 0x11fb0]
mov dword [edi + ecx], eax
mov dword [edi + ecx + 4], edx
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov eax, dword [edx + esi + 0x11fb0]
mov ecx, dword [edi + eax + 4]
test ecx, ecx
jl 0x3008f287
jg 0x3008d275
cmp dword [edi + eax], 0
jb 0x3008f287
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
add ecx, 0xfffffff8
jmp 0x3008e86b
cmp eax, 0x6d646961
ja 0x3008da2e
je 0x3008eeb6
cmp eax, 0x65736473
je 0x3008d9a7
cmp eax, 0x696c7374
je 0x3008d4bf
cmp eax, 0x6d646864
jne 0x3008ee34
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x3008f287
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11fd0]
or ecx, dword [eax + esi + 0x11fd4]
jne 0x3008f287
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
test eax, eax
jne 0x3008d3b1
mov eax, dword [ebp]
push 0
push 0
push 0xb
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov dword [edx + esi + 0x11fcc], eax
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11fcc]
test ecx, ecx
je 0x3008ee34
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov dword [ecx + esi + 0x11fd0], eax
mov dword [ecx + esi + 0x11fd4], edx
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov edx, dword [eax + esi + 0x11fd0]
or edx, dword [eax + esi + 0x11fd4]
je 0x3008ee34
lea eax, [esp + 0x13]
push eax
push 2
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
mov edi, dword [esp + 0x14]
imul ecx, ecx, 0xd0
add edi, 0xffffffea
jmp 0x3008d486
cmp eax, 1
jne 0x3008ee34
mov eax, dword [ebp]
push 0
push 0
push 0x13
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov dword [edx + esi + 0x11fcc], eax
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11fcc]
test ecx, ecx
je 0x3008ee34
lea ecx, [esp + 0x13]
push ecx
push 8
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov dword [ecx + esi + 0x11fd0], eax
mov dword [ecx + esi + 0x11fd4], edx
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov ecx, dword [edx + esi + 0x11fd0]
mov eax, dword [edx + esi + 0x11fd4]
mov edx, ecx
or edx, eax
je 0x3008ee34
test eax, eax
jl 0x3008f287
jg 0x3008d464
test ecx, ecx
jb 0x3008f287
lea eax, [esp + 0x13]
push eax
push 2
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
mov edi, dword [esp + 0x14]
imul ecx, ecx, 0xd0
add edi, 0xffffffde
mov edx, dword [esp + 0x18]
adc edx, 0xffffffff
mov word [ecx + esi + 0x11fd8], ax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], edx
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov ecx, dword [edx + esi + 0x11f90]
lea eax, [edx + esi + 0x11f90]
inc ecx
mov dword [eax], ecx
jmp 0x3008ee34
cmp dword [esi + 0x1544c], 0x100
jae 0x3008ee34
nop
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x3008ee34
jg 0x3008d4e9
cmp dword [esp + 0x14], 8
jb 0x3008ee34
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
mov ebx, eax
mov edi, edx
call fcn.3008bef0
test edi, edi
mov dword [esp + 0x24], eax
jl 0x3008ee34
jg 0x3008d521
test ebx, ebx
jbe 0x3008ee34
cmp edi, dword [esp + 0x18]
jg 0x3008ee34
jl 0x3008d537
cmp ebx, dword [esp + 0x14]
ja 0x3008ee34
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add ecx, 0xfffffff8
adc eax, 0xffffffff
add ebx, 0xfffffff8
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x1544c]
adc edi, 0xffffffff
cmp eax, 0x100
mov dword [esp + 0x14], ecx
jae 0x3008d972
test edi, edi
jl 0x3008d972
jg 0x3008d577
cmp ebx, 8
jb 0x3008d972
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov dword [esp + 0x28], eax
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
mov dword [esp + 0x38], edx
call fcn.3008bef0
cmp dword [esp + 0x2c], edi
jg 0x3008d972
jl 0x3008d5b3
cmp dword [esp + 0x28], ebx
ja 0x3008d972
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add edx, 0xfffffff8
adc ecx, 0xffffffff
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x28]
add ebx, 0xfffffff8
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x2c]
adc edi, 0xffffffff
or ecx, edx
je 0x3008d962
mov ecx, dword [esp + 0x28]
add ecx, 0xfffffff8
adc edx, 0xffffffff
cmp eax, 0x64617461
mov dword [esp + 0x28], ecx
mov dword [esp + 0x2c], edx
jne case.0x3008d6bb.2
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
cmp eax, 0x7075726c
je 0x3008d621
cmp eax, 0x65676964
jne 0x3008d629
mov dword [esp + 0x30], 1
mov eax, dword [esi + 0x1544c]
mov ecx, dword [esp + 0x30]
lea eax, [eax + eax*8]
shl eax, 5
mov dword [eax + esi + 0x3c], ecx
mov eax, dword [esi + 0x1544c]
lea edx, [eax + eax*8]
mov eax, dword [esp + 0x24]
push 0
shl edx, 5
push 0
mov dword [edx + esi + 0x38], eax
mov edx, dword [ebp]
push 4
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, 0xfffffff8
add eax, ecx
mov dword [esp + 0x14], eax
mov eax, 0xffffffff
adc edx, eax
add ebx, ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x28]
adc edi, eax
add edx, ecx
mov ecx, dword [esp + 0x2c]
adc ecx, eax
test edi, edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ecx
jl case.0x3008d6bb.2
jg 0x3008d6a7
test ebx, ebx
jbe case.0x3008d6bb.2
mov eax, dword [esp + 0x30]
cmp eax, 0x15
ja case.0x3008d6bb.2
movzx eax, byte [eax + 0x3008f2b0]
jmp dword [eax*4 + 0x3008f29c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push ecx
push edx
push 0
push 0x400000
call fcn.3008c1a0
mov ecx, dword [esi + 0x1544c]
lea ecx, [ecx + ecx*8]
shl ecx, 5
mov dword [ecx + esi + 0x148], eax
push eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], edx
mov dword [ecx + esi + 0x14c], edx
call fcn.3007a1f0
mov ecx, dword [esi + 0x1544c]
lea edx, [ecx + ecx*8]
mov ecx, dword [esp + 0x6c]
shl edx, 5
mov dword [edx + esi + 0x150], eax
mov eax, dword [esp + 0x70]
mov edx, dword [ebp]
add esp, 0x14
push eax
mov eax, dword [esi + 0x1544c]
lea eax, [eax + eax*8]
push ecx
shl eax, 5
mov ecx, dword [eax + esi + 0x150]
push ecx
mov ecx, ebp
call dword [edx + 0x10]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x58]
sub ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x5c]
jmp 0x3008d7d7
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push edx
push eax
push 0
push 0xffff
call fcn.3008c1a0
mov dword [esp + 0x74], eax
inc eax
push eax
mov dword [esp + 0x7c], edx
call fcn.3007a1f0
mov ecx, dword [esi + 0x1544c]
lea ecx, [ecx + ecx*8]
shl ecx, 5
mov dword [ecx + esi + 0x144], eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov edx, dword [ebp]
add esp, 0x14
push eax
mov eax, dword [esi + 0x1544c]
lea eax, [eax + eax*8]
push ecx
shl eax, 5
mov ecx, dword [eax + esi + 0x144]
push ecx
mov ecx, ebp
call dword [edx + 0x10]
mov eax, dword [esi + 0x1544c]
lea edx, [eax + eax*8]
mov eax, dword [esp + 0x64]
shl edx, 5
mov ecx, dword [edx + esi + 0x144]
mov byte [eax + ecx], 0
sub dword [esp + 0x14], eax
mov ecx, dword [esp + 0x68]
sbb dword [esp + 0x18], ecx
mov edx, dword [esp + 0x28]
sub ebx, eax
sbb edi, ecx
sub edx, eax
mov dword [esp + 0x28], edx
sbb dword [esp + 0x2c], ecx
jmp 0x3008d930
mov eax, dword [esp + 0x24]
cmp eax, 0x74726b6e
je 0x3008d80f
cmp eax, 0x6469736b
jne case.0x3008d6bb.21
test edi, edi
jl case.0x3008d6bb.21
jg 0x3008d80f
cmp ebx, 6
jb case.0x3008d6bb.21
lea edx, [esp + 0x13]
push edx
push 2
push ebp
mov ecx, esi
call fcn.3008bef0
lea eax, [esp + 0x13]
push eax
push 2
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x1544c]
lea ecx, [ecx + ecx*8]
lea edx, [esp + 0x13]
push edx
shl ecx, 5
push 2
mov dword [ecx + esi + 0x44], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x1544c]
lea ecx, [ecx + ecx*8]
shl ecx, 5
mov dword [ecx + esi + 0x48], eax
mov eax, dword [esi + 0x1544c]
lea edx, [eax + eax*8]
shl edx, 5
add ebx, 0xfffffffa
mov dword [edx + esi + 0x40], 2
adc edi, 0xffffffff
jmp 0x3008d930
mov eax, dword [esi + 0x1544c]
lea eax, [eax + eax*8]
shl eax, 5
cmp dword [eax + esi + 0x40], 0x40
jae 0x3008d930
push 0
push 4
push edi
push ebx
call fcn.3008c1a0
mov ecx, dword [esi + 0x1544c]
add esp, 0x10
mov dword [esp + 0x78], edx
lea edx, [esp + 0x13]
push edx
push eax
mov dword [esp + 0x28], ecx
push ebp
mov ecx, esi
mov dword [esp + 0x80], eax
call fcn.3008bef0
mov ecx, dword [esp + 0x20]
lea edx, [ecx + ecx*8]
shl edx, 5
mov edx, dword [edx + esi + 0x40]
lea ecx, [ecx + ecx*8]
lea ecx, [edx + ecx*8]
mov dword [esi + ecx*4 + 0x44], eax
mov eax, dword [esi + 0x1544c]
mov ecx, dword [esp + 0x14]
lea edx, [eax + eax*8]
shl edx, 5
lea eax, [edx + esi + 0x40]
inc dword [eax]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x18]
sub ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x78]
sbb edx, ecx
mov dword [esp + 0x18], edx
mov edx, dword [esp + 0x28]
sub ebx, eax
sbb edi, ecx
sub edx, eax
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x2c]
sbb edx, ecx
mov eax, ebx
or eax, edi
mov dword [esp + 0x2c], edx
jne case.0x3008d6bb.21
inc dword [esi + 0x1544c]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
sub ecx, eax
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x2c]
sbb edx, ecx
push 0
sub ebx, eax
push ecx
mov dword [esp + 0x20], edx
mov edx, dword [ebp]
sbb edi, ecx
push eax
mov ecx, ebp
call dword [edx + 0xc]
cmp dword [esi + 0x1544c], 0x100
jb 0x3008d564
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
sub eax, ebx
push 0
push edi
mov dword [esp + 0x1c], eax
mov eax, dword [ebp]
sbb edx, edi
push ebx
mov ecx, ebp
mov dword [esp + 0x24], edx
call dword [eax + 0xc]
cmp dword [esi + 0x1544c], 0x100
jb 0x3008d4d0
jmp 0x3008ee34
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x3008f287
mov eax, dword [esi + 0x15478]
test eax, eax
je 0x3008ee34
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
test eax, eax
jne 0x3008ee54
mov eax, dword [ebp]
push 0
push 0
push 3
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
cmp eax, 3
jne 0x3008f004
test edx, edx
jne 0x3008f004
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
test al, al
js 0x3008da08
mov eax, dword [ebp]
push 0
push 0
push 3
mov ecx, ebp
call dword [eax + 0xc]
jmp 0x3008f012
cmp eax, 0x6d657461
je 0x3008eebd
cmp eax, 0x6d696e66
je 0x3008eeb6
jmp 0x3008ee34
cmp eax, 0x73747373
ja 0x3008e63b
je 0x3008d113
cmp eax, 0x7374636f
ja 0x3008dc88
je 0x3008d113
cmp eax, 0x6d766864
je 0x3008db82
cmp eax, 0x7064696e
je 0x3008da8d
cmp eax, 0x7374626c
je 0x3008eeb6
jmp 0x3008ee34
mov eax, dword [esi + 0xc]
test eax, eax
je 0x3008da9d
mov byte [esi + 0x18], 1
jmp 0x3008ee34
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
or eax, edx
jne 0x3008ee34
mov edx, dword [ebp]
push 0
push 0
push 3
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add eax, 0xfffffffc
push 0
adc ecx, 0xffffffff
push 8
push ecx
push eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
call fcn.3028e000
or eax, edx
jne 0x3008ee34
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push 0
push 8
push eax
push ecx
call fcn.3002e1b0
test eax, eax
mov dword [esi + 8], eax
je 0x3008f287
cmp eax, 0x200000
jae 0x3008f287
lea edx, [eax*8]
push edx
call fcn.3007a1f0
mov dword [esi + 0xc], eax
mov eax, dword [esi + 8]
add esp, 4
xor edi, edi
test eax, eax
jbe 0x3008ee34
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0xc]
lea edx, [esp + 0x13]
push edx
push 4
mov dword [ecx + edi*8], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov edx, dword [esp + 0x18]
mov ecx, dword [esi + 0xc]
add ebx, 0xfffffff8
adc edx, 0xffffffff
mov dword [ecx + edi*8 + 4], eax
mov eax, dword [esi + 8]
inc edi
cmp edi, eax
mov dword [esp + 0x18], edx
jb 0x3008db38
mov dword [esp + 0x14], ebx
jmp 0x3008ee34
mov eax, dword [esi + 0x15454]
test eax, eax
jne 0x3008f287
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
test eax, eax
jne 0x3008dc04
mov eax, dword [ebp]
push 0
push 0
push 0xb
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
test eax, eax
mov dword [esi + 0x15454], eax
je 0x3008ee34
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x15458], eax
mov eax, dword [esp + 0x18]
add ecx, 0xffffffec
adc eax, 0xffffffff
mov dword [esi + 0x1545c], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
jmp 0x3008ee34
cmp eax, 1
jne 0x3008ee34
mov eax, dword [ebp]
push 0
push 0
push 0x13
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
test eax, eax
mov dword [esi + 0x15454], eax
je 0x3008ee34
lea edx, [esp + 0x13]
push edx
push 8
push ebp
mov ecx, esi
call fcn.3008bef0
mov dword [esi + 0x15458], eax
mov eax, edx
test eax, eax
mov dword [esi + 0x1545c], edx
jl 0x3008f287
jg 0x3008dc6d
mov eax, dword [esi + 0x15458]
test eax, eax
jb 0x3008f287
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
add ecx, 0xffffffe0
adc eax, 0xffffffff
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
jmp 0x3008ee34
sub eax, 0x73747363
je 0x3008d113
dec eax
jne 0x3008ee34
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x3008f287
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11f94]
test ecx, ecx
jne 0x3008f287
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
or eax, edx
jne 0x3008ee34
mov edx, dword [ebp]
push 0
push 0
push 3
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov edi, eax
test edi, edi
je 0x3008f287
cmp edi, 0x24924
ja 0x3008f287
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
add edx, 0xfffffff8
adc ecx, 0xffffffff
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
mov ecx, dword [esi + 0x15450]
mov edx, edi
imul ecx, ecx, 0xd0
imul edx, edx, 0x70
add edx, 4
push edx
mov dword [ecx + esi + 0x11f94], edi
call fcn.3007a1f0
add esp, 4
test eax, eax
je 0x3008dd5a
push 0x3008bc40
push edi
lea ebx, [eax + 4]
push 0x70
push ebx
mov dword [eax], edi
call fcn.30001050
jmp 0x3008dd5c
xor ebx, ebx
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
test edi, edi
mov dword [eax + esi + 0x11f98], ebx
jbe 0x3008e62c
mov dword [esp + 0x34], 0
mov dword [esp + 0x20], edi
xor ebx, ebx
jmp 0x3008dd90
mov ecx, dword [esi + 0x15450]
mov edi, dword [esp + 0x34]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11f98]
lea eax, [esp + 0x13]
push eax
push 4
add edx, edi
push ebp
mov ecx, esi
mov dword [esi + 0x15478], edx
call fcn.3008bef0
lea ecx, [esp + 0x13]
push ecx
push 4
mov edi, eax
push ebp
mov ecx, esi
mov dword [esp + 0x30], edi
call fcn.3008bef0
mov edx, dword [esi + 0x15478]
push ebx
push ebx
mov dword [edx], eax
mov eax, dword [ebp]
push 4
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov edx, dword [esi + 0x15478]
mov dword [edx + 4], eax
mov eax, dword [esi + 0x15478]
mov eax, dword [eax]
cmp eax, 0x68323634
ja 0x3008e120
je 0x3008dea3
cmp eax, 0x616d6633
ja 0x3008de74
je 0x3008de3e
cmp eax, 0x2e6d7033
je 0x3008e147
cmp eax, 0x48323634
je 0x3008dea3
cmp eax, 0x616d6630
jne 0x3008e32c
mov edx, dword [ebp]
push ebx
lea eax, [edi - 0x10]
push ebx
push eax
mov ecx, ebp
call dword [edx + 0xc]
mov al, byte [esi + 0x1e]
test al, al
jne 0x3008e5fe
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov byte [esi + 0x1e], 1
mov byte [ecx + esi + 0x11f6b], 1
jmp 0x3008e5fe
cmp eax, 0x61766331
je 0x3008dea3
cmp eax, 0x67696620
jne 0x3008e32c
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov byte [edx + esi + 0x11f6b], 1
mov byte [esi + 0x20], 1
jmp 0x3008e5f0
mov edx, dword [ebp]
push ebx
push ebx
push 0x10
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
lea ecx, [esp + 0x13]
push ecx
push 2
push ebp
mov ecx, esi
mov byte [eax + esi + 0x11f68], 1
call fcn.3008bef0
lea edx, [esp + 0x13]
push edx
push 2
push ebp
mov ecx, esi
mov dword [esi + 0x30], eax
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
mov dword [esi + 0x34], eax
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11f6c]
imul edx, dword [esi + 0x30]
add ecx, esi
mov ecx, dword [ecx + 0x11f78]
imul ecx, eax
lea eax, [edx + ecx + 0x8000]
cdq
and edx, 0xffff
add eax, edx
mov edx, dword [esi + 0x15478]
sar eax, 0x10
mov dword [esi + 0x30], eax
mov dword [edx + 0x18], eax
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11f70]
mov edx, dword [eax + esi + 0x11f7c]
imul ecx, dword [esi + 0x30]
imul edx, dword [esi + 0x34]
add eax, esi
lea eax, [ecx + edx + 0x8000]
mov ecx, dword [esi + 0x15478]
cdq
and edx, 0xffff
add eax, edx
sar eax, 0x10
push ebx
mov dword [esi + 0x34], eax
mov dword [ecx + 0x1c], eax
mov edx, dword [ebp]
push ebx
push 8
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
or eax, edx
je 0x3008df95
mov dword [esi + 0x15478], ebx
jmp 0x3008e5fe
lea ecx, [esp + 0x13]
push ecx
push 2
push ebp
mov ecx, esi
call fcn.3008bef0
cmp eax, 1
jne 0x3008dfad
cmp edx, ebx
je 0x3008dfb8
mov dword [esi + 0x15478], ebx
jmp 0x3008e5fe
mov edx, dword [ebp]
push ebx
push ebx
push 0x20
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [ebp]
push ebx
push ebx
push 2
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 2
push ebp
mov ecx, esi
call fcn.3008bef0
cmp eax, 0xffff
jne 0x3008dfea
cmp edx, ebx
je 0x3008dff5
mov dword [esi + 0x15478], ebx
jmp 0x3008e5fe
mov edx, dword [esi + 0x15478]
mov ecx, dword [edx]
cmp ecx, 0x61766331
lea eax, [edi - 0x56]
jne 0x3008e0e7
cmp eax, 8
jl 0x3008e0df
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x18]
mov ebx, eax
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x24]
add eax, 0xffffffaa
mov edi, edx
cdq
mov ecx, ebx
add eax, ecx
adc edx, edi
cmp edi, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], edx
jg 0x3008e0b6
jl 0x3008e048
cmp ecx, eax
jae 0x3008e0b6
mov edx, dword [ebp]
push 1
push edi
push ebx
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
cmp eax, 0x61766343
jne 0x3008e06e
test edx, edx
je 0x3008e086
mov eax, dword [esp + 0x44]
add ebx, 1
adc edi, 0
cmp edi, eax
jl 0x3008e048
jg 0x3008e0b6
cmp ebx, dword [esp + 0x40]
jb 0x3008e048
jmp 0x3008e0b6
mov edx, dword [ebp]
push 0
push 0xffffffffffffffff
push 0xfffffffffffffff8
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0xe0]
push eax
mov eax, dword [esp + 0xe0]
push ecx
push edx
push eax
push ebp
mov ecx, esi
call fcn.3008ce00
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov edx, dword [ebp]
push 1
push eax
push ecx
mov ecx, ebp
call dword [edx + 0xc]
mov edi, dword [esp + 0x24]
mov dword [esi + 0x15478], 0
xor ebx, ebx
jmp 0x3008e5fe
cmp ecx, 0x61766331
je 0x3008e0ff
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov byte [edx + esi + 0x11f6b], 1
mov byte [esi + 0x1c], 1
mov edi, dword [ebp]
cdq
push ebx
push edx
push eax
mov ecx, ebp
call dword [edi + 0xc]
mov edi, dword [esp + 0x24]
mov dword [esi + 0x15478], 0
xor ebx, ebx
jmp 0x3008e5fe
cmp eax, 0x706e6720
ja 0x3008e31a
je 0x3008de86
cmp eax, 0x6a706567
je 0x3008de86
cmp eax, 0x6d703461
jne 0x3008e32c
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
lea ecx, [esp + 0x13]
push ecx
push 2
push ebp
mov ecx, esi
mov byte [eax + esi + 0x11f69], 1
call fcn.3008bef0
mov edx, dword [ebp]
push ebx
push ebx
push 6
mov ecx, ebp
mov edi, eax
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 2
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 8], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
push ebx
mov dword [ecx + 0xc], eax
mov edx, dword [ebp]
push ebx
push 4
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], edx
fild qword [esp + 0x7c]
fmul qword [0x30296608]
fstp qword [ecx + 0x10]
mov edx, dword [esi + 0x15478]
cmp dword [edx], 0x2e6d7033
jne 0x3008e20e
mov al, byte [esi + 0x1d]
test al, al
jne 0x3008e20e
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov byte [esi + 0x1d], 1
mov byte [eax + esi + 0x11f6b], 1
mov ebx, dword [esp + 0x24]
add ebx, 0xffffffdc
cmp edi, 1
mov dword [esp + 0x30], ebx
jne 0x3008e233
mov edx, dword [ebp]
push 0
push 0
push 0x10
mov ecx, ebp
call dword [edx + 0xc]
sub ebx, 0x10
mov dword [esp + 0x30], ebx
mov eax, dword [esi + 0x15478]
cmp dword [eax], 0x6d703461
mov ecx, ebp
jne 0x3008e302
mov edx, dword [ebp]
call dword [edx + 0x18]
mov ebx, eax
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x30]
mov edi, edx
cdq
mov ecx, ebx
add eax, ecx
adc edx, edi
cmp edi, edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], edx
jg 0x3008e2e3
jl 0x3008e275
cmp ecx, eax
jae 0x3008e2e3
mov eax, dword [ebp]
push 1
push edi
push ebx
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
cmp eax, 0x65736473
jne 0x3008e29b
test edx, edx
je 0x3008e2b3
mov eax, dword [esp + 0x4c]
add ebx, 1
adc edi, 0
cmp edi, eax
jl 0x3008e275
jg 0x3008e2e3
cmp ebx, dword [esp + 0x48]
jb 0x3008e275
jmp 0x3008e2e3
mov edx, dword [ebp]
push 0
push 0xffffffffffffffff
push 0xfffffffffffffff8
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xe0]
push eax
mov eax, dword [esp + 0xe0]
push ecx
push edx
push eax
push ebp
mov ecx, esi
call fcn.3008ce00
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [ebp]
push 1
push eax
push ecx
mov ecx, ebp
call dword [edx + 0xc]
mov edi, dword [esp + 0x24]
xor ebx, ebx
jmp 0x3008e5fe
mov edi, dword [ebp]
mov eax, ebx
cdq
push 0
push edx
push eax
call dword [edi + 0xc]
mov edi, dword [esp + 0x24]
xor ebx, ebx
jmp 0x3008e5fe
cmp eax, 0x74657874
je 0x3008e5c4
cmp eax, 0x74783367
je 0x3008e33f
mov edx, dword [ebp]
push ebx
lea eax, [edi - 0x10]
push ebx
push eax
mov ecx, ebp
call dword [edx + 0xc]
jmp 0x3008e5fe
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov byte [ecx + esi + 0x11f6a], 1
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
mov byte [edx + esi + 0x11f6b], 1
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 1
mov dword [ecx + 0x2c], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 1
mov dword [ecx + 0x30], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 4
mov dword [ecx + 0x34], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x38], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x3c], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x40], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x48], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x44], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
mov dword [ecx + 0x4c], eax
push 2
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x50], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 1
mov dword [ecx + 0x54], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 1
mov dword [ecx + 0x58], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 4
mov dword [ecx + 0x5c], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
lea edx, [esp + 0x13]
push edx
push 2
mov dword [ecx + 0x60], eax
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
mov dword [ecx + 0x64], eax
mov edx, dword [esi + 0x15478]
mov eax, dword [edx + 0x64]
cmp eax, ebx
mov dword [esp + 0x30], ebx
je 0x3008e59e
imul eax, eax, 0x104
push eax
call fcn.3007a1f0
mov ecx, dword [esi + 0x15478]
mov dword [ecx + 0x68], eax
mov edx, dword [esi + 0x15478]
mov eax, dword [edx + 0x64]
add esp, 4
test eax, eax
mov dword [esp + 0x60], 0
jbe 0x3008e59e
xor ebx, ebx
lea eax, [esp + 0x13]
push eax
push 2
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15478]
mov edx, dword [ecx + 0x68]
mov dword [ebx + edx], eax
mov edx, dword [esi + 0x15478]
mov edx, dword [edx + 0x68]
xor eax, eax
lea edi, [edx + ebx + 4]
mov ecx, 0x40
rep stosd dword es:[edi], eax
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
mov edx, dword [ebp]
mov edi, eax
mov eax, dword [esi + 0x15478]
mov ecx, dword [eax + 0x68]
push 0
lea eax, [ecx + ebx + 4]
push edi
push eax
mov ecx, ebp
call dword [edx + 0x10]
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x60]
lea edx, [ecx + edi - 3]
mov ecx, dword [esi + 0x15478]
mov dword [esp + 0x30], edx
mov edx, dword [ecx + 0x64]
inc eax
add ebx, 0x104
cmp eax, edx
mov dword [esp + 0x60], eax
jb 0x3008e517
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
push 0
sub eax, ecx
sub eax, 0x30
push 0
mov byte [esi + 0x1f], 1
mov edx, dword [ebp]
push eax
mov ecx, ebp
call dword [edx + 0xc]
mov edi, dword [esp + 0x24]
xor ebx, ebx
jmp 0x3008e5fe
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov byte [ecx + esi + 0x11f6a], 1
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov byte [edx + esi + 0x11f6b], 1
mov byte [esi + 0x1f], 1
mov eax, dword [ebp]
push ebx
lea ecx, [edi - 0x10]
push ebx
push ecx
mov ecx, ebp
call dword [eax + 0xc]
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
sub eax, edi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
sbb edx, ebx
add ecx, 0x70
dec eax
mov dword [esp + 0x18], edx
mov dword [esp + 0x34], ecx
mov dword [esp + 0x20], eax
jne 0x3008dd90
mov dword [esi + 0x15478], 0
jmp 0x3008d49d
cmp eax, 0x746b6864
ja 0x3008ee26
je 0x3008ed4c
cmp eax, 0x7374737a
je 0x3008ebb3
cmp eax, 0x73747473
je 0x3008d113
cmp eax, 0x7469746c
jne 0x3008ee34
cmp dword [esi + 0x1544c], 0x100
jae 0x3008ee34
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
test eax, eax
jne 0x3008ee34
mov edx, dword [ebp]
push eax
push eax
push 3
mov ecx, ebp
call dword [edx + 0xc]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
push eax
push ecx
push 0
push 0xffff
call fcn.3008c1a0
mov ecx, dword [esp + 0x34]
mov ebx, eax
mov eax, dword [esi + 0x1544c]
mov edi, edx
lea edx, [eax + eax*8]
shl edx, 5
mov dword [edx + esi + 0x3c], 1
mov eax, dword [esi + 0x1544c]
add esp, 0x10
lea edx, [esp + 0x13]
lea eax, [eax + eax*8]
push edx
shl eax, 5
push 2
mov dword [eax + esi + 0x38], ecx
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x1544c]
lea ecx, [ecx + ecx*8]
lea edx, [ebx + 1]
shl ecx, 5
push edx
mov dword [ecx + esi + 0x154], eax
call fcn.3007a1f0
mov ecx, dword [esi + 0x1544c]
lea ecx, [ecx + ecx*8]
shl ecx, 5
mov dword [ecx + esi + 0x144], eax
mov eax, dword [esi + 0x1544c]
mov edx, dword [ebp]
add esp, 4
lea eax, [eax + eax*8]
push edi
shl eax, 5
mov ecx, dword [eax + esi + 0x144]
push ebx
push ecx
mov ecx, ebp
call dword [edx + 0x10]
mov eax, dword [esi + 0x1544c]
lea edx, [eax + eax*8]
shl edx, 5
mov eax, dword [edx + esi + 0x144]
mov ecx, 0xfffffffa
sub ecx, ebx
mov edx, 0xffffffff
sbb edx, edi
mov edi, dword [esp + 0x14]
add edi, ecx
mov ecx, dword [esp + 0x18]
mov byte [ebx + eax], 0
mov eax, dword [esi + 0x1544c]
adc ecx, edx
inc eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
mov dword [esi + 0x1544c], eax
jmp 0x3008ee34
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
lea eax, [ecx + esi + 0x11fbc]
cmp dword [eax], edi
jne 0x3008f287
lea edx, [ebx*8]
push edx
mov dword [eax], ebx
call fcn.3007a1f0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
add esp, 4
cmp ebx, edi
mov dword [ecx + esi + 0x11fc0], eax
jbe 0x3008ee34
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11fc0]
mov dword [edx + edi*8], eax
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11fc0]
mov dword [edx + edi*8 + 4], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add eax, 0xfffffff8
adc edx, 0xffffffff
inc edi
cmp edi, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jb 0x3008e7d7
jmp 0x3008ee34
push 4
push ebp
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov ecx, dword [ecx + esi + 0x11fb0]
mov dword [ecx + edi*8], eax
mov dword [ecx + edi*8 + 4], edx
mov ecx, dword [esp + 0x14]
add ecx, 0xfffffffc
mov eax, dword [esp + 0x18]
adc eax, 0xffffffff
inc edi
cmp edi, ebx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edi
jb 0x3008d210
jmp 0x3008d49d
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11f9c]
cmp ecx, edi
lea eax, [eax + esi + 0x11f9c]
jne 0x3008f287
mov dword [eax], ebx
lea eax, [ebx + ebx*2]
shl eax, 2
mov dword [esp + 0x20], eax
add eax, 0xc
push eax
call fcn.3007a1f0
mov ecx, dword [esi + 0x15450]
add ecx, 0x162
imul ecx, ecx, 0xd0
add esp, 4
cmp ebx, edi
mov dword [ecx + esi], eax
mov dword [esp + 0x50], edi
mov dword [esp + 0x54], edi
jbe 0x3008e9b9
xor edi, edi
lea ecx, [ecx]
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
add ecx, 0x162
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi]
dec eax
mov dword [edi + edx], eax
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
add edx, eax
adc ecx, 0
mov dword [esp + 0x54], ecx
mov ecx, dword [esi + 0x15450]
add ecx, 0x162
imul ecx, ecx, 0xd0
mov dword [esp + 0x50], edx
mov edx, dword [ecx + esi]
mov dword [edx + edi + 4], eax
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
add ecx, 0x162
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi]
mov dword [edx + edi + 8], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add eax, 0xfffffff4
adc edx, 0xffffffff
add edi, 0xc
dec ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jne 0x3008e8f0
mov eax, dword [esp + 0x54]
test eax, eax
ja 0x3008f287
jb 0x3008e9b9
cmp dword [esp + 0x50], 0xffffff
ja 0x3008f287
mov eax, dword [esi + 0x15450]
add eax, 0x162
imul eax, eax, 0xd0
mov ecx, dword [eax + esi]
mov eax, dword [esp + 0x20]
mov dword [eax + ecx], 0xffffffff
mov edx, dword [esi + 0x15450]
add edx, 0x162
imul edx, edx, 0xd0
mov edx, dword [edx + esi]
xor ecx, ecx
mov dword [edx + eax + 4], ecx
mov edx, dword [esi + 0x15450]
add edx, 0x162
imul edx, edx, 0xd0
mov edx, dword [edx + esi]
mov dword [edx + eax + 4], ecx
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11f90]
lea eax, [eax + esi + 0x11f90]
inc ecx
mov dword [eax], ecx
jmp 0x3008ee34
cmp eax, 0x73747373
je 0x3008eb01
cmp eax, 0x73747473
jne 0x3008ee34
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
lea eax, [ecx + esi + 0x11fb4]
cmp dword [eax], 0
jne 0x3008f287
lea edx, [ebx*8]
push edx
mov dword [eax], ebx
call fcn.3007a1f0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
add esp, 4
xor edi, edi
test ebx, ebx
mov dword [ecx + esi + 0x11fb8], eax
jbe 0x3008ea0c
jmp 0x3008ea90
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11fb8]
mov dword [edx + edi*8], eax
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
test eax, eax
jns 0x3008eaca
xor eax, eax
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11fb8]
mov dword [edx + edi*8 + 4], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add eax, 0xfffffff8
adc edx, 0xffffffff
inc edi
cmp edi, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jb 0x3008ea90
jmp 0x3008ea0c
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
lea eax, [ecx + esi + 0x11fc4]
cmp dword [eax], edi
jne 0x3008f287
lea edx, [ebx + ebx*2]
shl edx, 3
push edx
mov dword [eax], ebx
call fcn.3007a1f0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
add esp, 4
cmp ebx, edi
mov dword [ecx + esi + 0x11fc8], eax
jbe 0x3008ee34
xor edi, edi
lea ebx, [ebx]
lea edx, [esp + 0x13]
push edx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11fc8]
mov dword [edi + edx], eax
mov eax, dword [esi + 0x15450]
mov edx, dword [esp + 0x18]
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11fc8]
xor eax, eax
mov dword [ecx + edi + 8], eax
mov dword [ecx + edi + 0xc], eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffffc
adc edx, 0xffffffff
add edi, 0x18
dec ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jne 0x3008eb50
jmp 0x3008ee34
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x3008f287
imul eax, eax, 0xd0
mov ecx, dword [eax + esi + 0x11fa4]
test ecx, ecx
jne 0x3008f287
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
or eax, edx
jne 0x3008ee34
mov eax, dword [ebp]
push 0
push 0
push 3
mov ecx, ebp
call dword [eax + 0xc]
lea ecx, [esp + 0x13]
push ecx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esp + 0x18]
mov edi, eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff4
push 0
adc ecx, 0xffffffff
push 4
push ecx
push eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
call fcn.3002e1b0
push edx
push eax
lea edx, [esp + 0x1b]
push edx
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
push 0
push eax
call fcn.3008c1a0
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x3008ec59
test edi, edi
je 0x3008f287
jmp 0x3008ec65
cmp ebx, 0x400000
ja 0x3008f287
cmp edi, 0xffffff
ja 0x3008f287
mov eax, dword [esi + 0x15450]
imul eax, eax, 0xd0
test edi, edi
jne 0x3008ecf5
lea ecx, [ebx*4]
push ecx
mov dword [eax + esi + 0x11fa4], ebx
call fcn.3007a1f0
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
add esp, 4
test ebx, ebx
mov dword [edx + esi + 0x11fa8], eax
jbe 0x3008ed32
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov edx, dword [ecx + esi + 0x11fa8]
mov dword [edx + edi*4], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
add eax, 0xfffffffc
adc edx, 0xffffffff
inc edi
cmp edi, ebx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edx
jb 0x3008ecb3
jmp 0x3008ed32
push 4
mov dword [eax + esi + 0x11fa4], 1
call fcn.3007a1f0
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov dword [ecx + esi + 0x11fa8], eax
mov edx, dword [esi + 0x15450]
add esp, 4
imul edx, edx, 0xd0
mov eax, dword [edx + esi + 0x11fa8]
mov dword [eax], edi
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
lea eax, [ecx + esi + 0x11f90]
inc dword [eax]
jmp 0x3008ee34
mov eax, dword [esi + 0x15450]
test eax, eax
je 0x3008f287
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
push 0
push 0
mov dword [esp + 0x28], eax
mov eax, dword [ebp]
push 3
mov ecx, ebp
call dword [eax + 0xc]
mov eax, dword [esp + 0x20]
add edi, 0xfffffffc
adc ebx, 0xffffffff
test eax, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ebx
jne 0x3008eda4
mov edx, dword [ebp]
push 0
push 0
push 0x14
mov ecx, ebp
call dword [edx + 0xc]
add edi, 0xffffffec
jmp 0x3008edc8
cmp dword [esp + 0x20], 1
jne 0x3008ee34
mov eax, dword [ebp]
push 0
push 0
push 0x20
mov ecx, ebp
call dword [eax + 0xc]
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
add edi, 0xffffffe0
mov edx, dword [ebp]
push 0
push 0
push 0x10
mov ecx, ebp
adc ebx, 0xffffffff
call dword [edx + 0xc]
add edi, 0xfffffff0
adc ebx, 0xffffffff
mov dword [esp + 0x20], 0
lea eax, [esp + 0x13]
push eax
push 4
push ebp
mov ecx, esi
call fcn.3008bef0
mov edx, dword [esi + 0x15450]
mov ecx, dword [esp + 0x20]
imul edx, edx, 0x34
add edx, ecx
add edi, 0xfffffffc
adc ebx, 0xffffffff
inc ecx
cmp ecx, 9
mov dword [esi + edx*4 + 0x11f6c], eax
mov dword [esp + 0x20], ecx
jl 0x3008ede7
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], edi
jmp 0x3008ee34
cmp eax, 0x7472616b
je 0x3008ee70
cmp eax, 0x75647461
je 0x3008eeb2
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
mov eax, dword [ebp]
push 0
push ecx
push edx
mov ecx, ebp
call dword [eax + 0xc]
mov al, byte [esp + 0x13]
test al, al
je 0x3008cea0
mov al, byte [esp + 0x1f]
test al, al
je 0x3008ef4b
mov al, byte [esi + 0x19]
pop edi
pop ebx
pop ebp
pop esi
add esp, 0xc4
ret 0x14
mov eax, dword [esi + 0x15450]
cmp eax, 0x40
jae 0x3008f28b
mov ecx, dword [esi + 0x15454]
inc eax
mov dword [esi + 0x15450], eax
imul eax, eax, 0xd0
mov dword [eax + esi + 0x11fcc], ecx
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov dword [edx + esi + 0x1201c], 0xffffffff
jmp 0x3008ef08
mov eax, dword [esp + 0x24]
cmp eax, 0x6d657461
jne 0x3008eecd
mov eax, dword [ebp]
push 0
push 0
push 4
mov ecx, ebp
call dword [eax + 0xc]
jmp 0x3008ef08
cmp eax, 0x6d6f6f76
jne 0x3008ef08
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x18]
mov dword [esi + 0x15468], eax
mov dword [esi + 0x1546c], edx
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x1c]
mov ecx, dword [esp + 0x3c]
cmp ecx, edx
jg 0x3008f26f
jl 0x3008ef08
cmp dword [esp + 0x38], eax
ja 0x3008f26f
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0xe0]
push ecx
mov ecx, dword [esp + 0xe0]
push edx
push eax
push ecx
push ebp
mov ecx, esi
call fcn.3008ce00
test al, al
je 0x3008f28b
cmp dword [esp + 0x24], 0x6d6f6f76
jne 0x3008cea0
mov ecx, esi
call fcn.3008bc80
mov byte [esi + 0x19], 1
pop edi
pop ebx
pop ebp
mov al, 1
pop esi
add esp, 0xc4
ret 0x14
mov byte [esi + 0x18], 1
jmp 0x3008ee54
mov eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0xe4]
mov edx, dword [ebp]
push 1
push eax
push ecx
mov ecx, ebp
call dword [edx + 0xc]
jmp 0x3008ee54
mov eax, dword [esi + 0x15478]
test eax, eax
je 0x3008ee54
mov edx, dword [ebp]
mov ecx, ebp
call dword [edx + 0x18]
mov ecx, dword [esi + 0x15478]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov edx, dword [esi + 0x15478]
push 0
push 4
lea ecx, [esp + 0x28]
mov dword [edx + 0x28], edi
mov eax, dword [ebp]
push ecx
mov ecx, ebp
call dword [eax + 0x10]
mov eax, dword [esp + 0x20]
cmp al, 1
jne 0x3008f28b
movzx edx, ah
movzx eax, byte [esp + 0x23]
mov dword [esi + 0x28], eax
mov al, byte [esi + 0x1b]
test al, al
mov dword [esi + 0x24], edx
jne 0x3008ee54
mov ecx, dword [esi + 0x15450]
imul ecx, ecx, 0xd0
mov byte [ecx + esi + 0x11f6b], 1
mov byte [esi + 0x1b], 1
mov byte [esi + 0x1c], 1
jmp 0x3008ee54
mov edx, dword [ebp]
push 0
push 0
push 2
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
cmp eax, 4
jne 0x3008ee54
test edx, edx
jne 0x3008ee54
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
test al, al
js 0x3008f032
mov edx, dword [ebp]
push 0
push 0
push 0xd
mov ecx, ebp
call dword [edx + 0xc]
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
cmp eax, 5
jne 0x3008ee54
test edx, edx
jne 0x3008ee54
xor edi, edi
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
mov edx, eax
and edx, 0x7f
shl edi, 7
or edi, edx
test al, al
js 0x3008f075
cmp edi, 0x100000
jae 0x3008ee54
mov eax, dword [ebp]
mov ecx, ebp
call dword [eax + 0x18]
mov ecx, dword [esi + 0x15478]
mov dword [ecx + 0x20], eax
lea eax, [esp + 0x13]
push eax
mov dword [ecx + 0x24], edx
mov edx, dword [esi + 0x15478]
push 1
push ebp
mov ecx, esi
mov dword [edx + 0x28], edi
call fcn.3008bef0
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
mov ebx, eax
call fcn.3008bef0
mov edi, eax
mov eax, ebx
shr eax, 3
cmp eax, 1
mov dword [esi + 0x2c], eax
je 0x3008f0f8
cmp eax, 2
je 0x3008f0f8
cmp eax, 5
jne 0x3008ee54
xor eax, eax
mov dword [esp + 0xc4], eax
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], eax
mov dword [esp + 0xd0], eax
and ebx, 7
mov eax, edi
shr eax, 7
shl ebx, 1
or eax, ebx
cmp eax, 0xf
mov dword [esp + 0x94], 0x17700
mov dword [esp + 0x98], 0x15888
mov dword [esp + 0x9c], 0xfa00
mov dword [esp + 0xa0], 0xbb80
mov dword [esp + 0xa4], 0xac44
mov dword [esp + 0xa8], 0x7d00
mov dword [esp + 0xac], 0x5dc0
mov dword [esp + 0xb0], 0x5622
mov dword [esp + 0xb4], 0x3e80
mov dword [esp + 0xb8], 0x2ee0
mov dword [esp + 0xbc], 0x2b11
mov dword [esp + 0xc0], 0x1f40
je 0x3008f1cc
fild dword [esp + eax*4 + 0x94]
mov edx, dword [esi + 0x15478]
shr edi, 3
and edi, 0xf
fstp qword [edx + 0x10]
mov eax, dword [esi + 0x15478]
mov dword [eax + 8], edi
jmp 0x3008f243
lea ecx, [esp + 0x13]
push ecx
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
lea edx, [esp + 0x13]
push edx
push 1
push ebp
mov ecx, esi
mov ebx, eax
call fcn.3008bef0
mov dword [esp + 0x20], eax
lea eax, [esp + 0x13]
push eax
push 1
push ebp
mov ecx, esi
call fcn.3008bef0
mov edx, dword [esp + 0x20]
and edi, 0x3f
shl edi, 7
or edi, ebx
shl edi, 8
or edi, edx
mov ecx, eax
shl edi, 1
shr ecx, 7
or edi, ecx
test edi, edi
mov dword [esp + 0x20], edi
fild dword [esp + 0x20]
jge 0x3008f22b
fadd qword [0x30294540]
mov edx, dword [esi + 0x15478]
fstp qword [edx + 0x10]
mov ecx, dword [esi + 0x15478]
shr eax, 3
and eax, 0xf
mov dword [ecx + 8], eax
mov al, byte [esi + 0x1a]
test al, al
jne 0x3008ee54
mov edx, dword [esi + 0x15450]
imul edx, edx, 0xd0
mov byte [edx + esi + 0x11f6b], 1
mov byte [esi + 0x1a], 1
mov byte [esi + 0x1d], 1
jmp 0x3008ee54
cmp ecx, dword [esp + 0xe0]
jl 0x3008f28b
jg 0x3008f287
mov eax, dword [esp + 0x38]
cmp eax, dword [esp + 0xdc]
jbe 0x3008f28b
mov byte [esi + 0x18], 1
pop edi
pop ebx
pop ebp
xor al, al
pop esi
add esp, 0xc4
ret 0x14