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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
push esi
mov esi, ecx
mov dword [esp + 0xc], edx
push edi
mov edi, dword [ebp + 0xc]
xorps xmm0, xmm0
mov dword [esp + 0xc], esi
mov eax, dword [esi + 8]
mov dword [esp + 0x30], eax
mov eax, dword [esi]
mov byte [esp + 0x23], 0
mov dword [esp + 0x28], eax
movaps xmmword [esp + 0x60], xmm0
movq qword [esp + 0x70], xmm0
mov dword [esp + 0x78], 0
test edi, edi
je 0x4ed3c2
xor ecx, ecx
cmp dword [edi], 0x40
cmovge edi, ecx
mov dword [ebp + 0xc], edi
mov al, byte [eax + 0x4c]
mov ecx, dword [ebp + 0x14]
and al, 0x10
mov byte [esp + 0x3b], al
mov eax, ecx
and eax, 0xfeff
mov dword [esp + 0x68], edi
cmp byte [esp + 0x3b], 0
movzx edx, ax
movzx eax, cx
cmove edx, eax
movzx eax, dx
mov ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x10]
mov ecx, dword [ecx]
cmp ecx, 0x40
jle 0x4ed413
push 0x40
push 0x66cb6c
push esi
call fcn.00479ca0
add esp, 0xc
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
test al, 0x20
mov eax, 1
push 0
cmovne ecx, eax
imul eax, ecx, 0x58
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x20], eax
add eax, 0x2f7
and eax, 0xfffffff8
mov dword [esp + 0x38], eax
add eax, 0x48
push eax
call fcn.00476a20
mov ecx, eax
add esp, 8
mov eax, dword [esp + 0x28]
mov dword [esp + 8], ecx
cmp byte [eax + 0x51], 0
je 0x4ed46f
test ecx, ecx
je 0x4ed7ae
mov edx, ecx
mov ecx, eax
call fcn.00476790
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0xc]
xorps xmm0, xmm0
mov eax, dword [esp + 0x10]
mov dword [ecx + 4], eax
mov eax, dword [ebp + 0x10]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [ecx], esi
mov esi, dword [ebp + 8]
mov dword [ecx + 8], edi
mov dword [ecx + 0x10], esi
mov dword [ecx + 0x18], 0xffffffff
mov dword [ecx + 0x14], 0xffffffff
mov byte [ecx + 0x2c], al
mov eax, dword [edx + 0x38]
dec eax
mov dword [edx + 0x38], eax
mov dword [ecx + 0x1c], eax
mov dword [ecx + 0x20], eax
mov eax, dword [esp + 0x24]
mov word [ecx + 0x28], ax
mov eax, dword [ebp + 0x18]
mov word [ecx + 0x2a], ax
mov eax, dword [edx + 0x88]
mov dword [ecx + 0x24], eax
mov eax, dword [esp + 0x1c]
movups xmmword [ecx + 0x2d], xmm0
add eax, 0x48
movups xmmword [ecx + 0x3d], xmm0
mov word [ecx + 0x4d], 0
push eax
mov byte [ecx + 0x4f], 0
add ecx, 0x2f0
push 0
push ecx
mov dword [esp + 0x60], ecx
call fcn.005cc450
mov edx, dword [esp + 0x14]
add esp, 0xc
mov ecx, dword [esp + 0x34]
add ecx, edx
mov dword [esp + 0x60], edx
mov dword [esp + 0x6c], ecx
lea eax, [edx + 0x1e8]
mov dword [esp + 0x1c], eax
lea eax, [edx + 0x50]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x64], eax
lea eax, [ecx + 0x38]
mov dword [ecx + 0x30], eax
xor eax, eax
mov word [ecx + 0x28], ax
mov eax, 3
mov word [ecx + 0x2c], ax
mov dword [ecx + 0x24], 0
lea ecx, [edx + 0x50]
mov dword [edx + 0x1ec], 0
lea eax, [ecx + 0x18]
mov dword [ecx], edx
mov edx, esi
push 0x2c
mov byte [ecx + 9], 0
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 8
mov dword [ecx + 0x14], eax
call fcn.004e7bf0
add esp, 4
cmp dword [esp + 0x2c], 0
jne 0x4ed5af
mov ecx, dword [esp + 8]
test edi, edi
je 0x4ed588
mov al, byte [edi]
mov byte [ecx + 0x2d], al
test dword [esp + 0x24], 0x100
je 0x4ed596
mov byte [ecx + 0x2f], 1
push 0x66cb88
push 0
push dword [esp + 0x14]
call fcn.00495f80
mov eax, dword [esp + 0x1c]
add esp, 0xc
jmp 0x4ed5f2
mov esi, dword [esp + 0x10]
xor edi, edi
add esi, 8
nop dword [eax + eax]
mov edx, dword [esp + 0x1c]
mov eax, dword [esi + 0x2c]
push dword [esp + 0x3c]
mov ecx, dword [edx + 4]
mov dword [edx + ecx*4 + 8], eax
inc dword [edx + 4]
mov edx, esi
mov ecx, dword [esp + 0x10]
call fcn.004e7ed0
mov eax, dword [esp + 0x14]
inc edi
add esp, 4
add esi, 0x48
cmp edi, dword [eax]
jl 0x4ed5c0
mov edi, dword [ebp + 0xc]
mov esi, dword [esp + 0x3c]
mov esi, dword [esi + 0xc]
sub esi, 1
js 0x4ed61b
mov edi, dword [esp + 0x3c]
push esi
mov edx, edi
mov ecx, eax
call fcn.004e7020
mov eax, dword [esp + 0x14]
add esp, 4
sub esi, 1
jns 0x4ed602
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x51], 0
jne 0x4ed792
mov esi, dword [esp + 0x3c]
cmp dword [esi + 0xc], 0
jle 0x4ed6f4
xor ecx, ecx
xor edi, edi
mov dword [esp + 0x18], ecx
nop
mov esi, dword [esi + 0x14]
add esi, ecx
test byte [esi + 0xa], 2
jne 0x4ed6dc
mov eax, dword [esi + 0x28]
or eax, dword [esi + 0x2c]
jne 0x4ed6dc
cmp dword [esp + 0x2c], eax
je 0x4ed6bc
mov edx, dword [esi]
xorps xmm0, xmm0
mov dword [esp + 0x98], eax
mov eax, 1
movaps xmmword [esp + 0x80], xmm0
movq qword [esp + 0x90], xmm0
mov word [esp + 0x94], ax
mov dword [esp + 0x84], 0x4ec740
mov dword [esp + 0x88], 0x4aca60
test edx, edx
je 0x4ed6bc
lea ecx, [esp + 0x80]
call fcn.004a8aa0
cmp word [esp + 0x94], 0
je 0x4ed6d8
mov eax, dword [esp + 8]
push 0x10
push dword [eax + 0x20]
push dword [esi]
push dword [esp + 0x18]
call fcn.004b22e0
add esp, 0x10
or word [esi + 0xa], 4
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x3c]
inc edi
add ecx, 0x30
mov dword [esp + 0x18], ecx
cmp edi, dword [esi + 0xc]
jl 0x4ed640
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 0x24]
and eax, 0x100
mov dword [esp + 0x58], eax
je 0x4ed73a
push dword [ebp + 0x10]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
push esi
call fcn.004e86c0
mov esi, dword [esp + 0x10]
add esp, 8
test eax, eax
je 0x4ed725
mov byte [esi + 0x2f], 1
jmp 0x4ed73e
test edi, edi
jne 0x4ed73e
mov edi, dword [ebp + 0x10]
mov eax, 0x80
or word [esi + 0x28], ax
mov dword [esi + 8], edi
jmp 0x4ed741
mov esi, dword [esp + 8]
mov edi, dword [ebp + 0x10]
cmp dword [esp + 0x2c], 1
jne 0x4ed755
lea ecx, [esp + 0x60]
call fcn.004ed180
test eax, eax
jne 0x4ed7b6
lea ecx, [esp + 0x60]
call fcn.004ebd50
test eax, eax
jne 0x4ed792
xor edx, edx
mov ecx, esi
call fcn.004ec880
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 0x51], 0
jne 0x4ed792
cmp dword [esi + 8], 0
je 0x4ed7c0
movzx edx, word [esi + 0x34]
mov ecx, esi
inc dx
call fcn.004ec880
mov ecx, dword [esp + 0x28]
cmp byte [ecx + 0x51], 0
je 0x4ed7ba
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov eax, dword [ecx + 0x24]
mov dword [edx + 0x88], eax
mov edx, ecx
mov ecx, dword [esp + 0x28]
call fcn.004e99a0
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0x28]
cmp dword [esi + 8], 0
jne 0x4ed7db
mov eax, dword [ecx + 0x20]
and eax, 0x1000
or eax, 0
je 0x4ed7db
mov dword [esi + 0x48], 0xffffffff
mov dword [esi + 0x4c], 0xffffffff
mov eax, dword [esp + 0xc]
cmp dword [eax + 0x24], 0
jne 0x4ed792
cmp byte [ecx + 0x51], 0
jne 0x4ed792
cmp byte [esi + 0x2c], 2
mov dword [esp + 0x40], 0xffffffff
mov dword [esp + 0x44], 0xffffffff
jb 0x4ed9a7
test edi, edi
je 0x4ed9a7
mov eax, 0x100
test word [ecx + 0x4c], ax
jne 0x4ed9a7
mov edx, edi
lea ecx, [esi + 0x1e8]
call fcn.004e7e30
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x68]
mov dword [esp + 0x18], eax
test edx, edx
je 0x4ed84c
lea ecx, [esi + 0x1e8]
call fcn.004e7e30
or dword [esp + 0x18], eax
or dword [esp + 0x14], edx
movzx edi, byte [esi + 0x2c]
dec edi
mov dword [esp + 0x4c], edi
cmp edi, 1
jl 0x4ed9a7
imul eax, edi, 0x58
add eax, 0x348
add eax, esi
mov dword [esp + 0x34], eax
nop dword [eax]
mov edx, dword [eax - 0x10]
mov dword [esp + 0x50], edx
movzx eax, byte [edx + 0x10]
lea ecx, [eax + eax*8]
mov eax, dword [esi + 4]
lea eax, [eax + ecx*8]
add eax, 8
mov dword [esp + 0x5c], eax
test byte [eax + 0x24], 8
je 0x4ed98e
cmp word [esp + 0x58], 0
jne 0x4ed8aa
test dword [edx + 0x24], 0x1000
je 0x4ed98e
mov eax, dword [edx + 8]
mov ecx, eax
mov edx, dword [edx + 0xc]
and ecx, dword [esp + 0x18]
mov dword [esp + 0x1c], eax
mov eax, edx
and eax, dword [esp + 0x14]
or ecx, eax
mov dword [esp + 0x48], edx
jne 0x4ed98e
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + 0x14]
mov esi, eax
mov ecx, dword [ecx + 0xc]
lea edi, [ecx + ecx*2]
shl edi, 4
add edi, eax
cmp esi, edi
jae 0x4ed91c
mov edx, dword [esi + 0x28]
mov ecx, dword [esi + 0x2c]
and edx, dword [esp + 0x1c]
and ecx, dword [esp + 0x48]
or edx, ecx
je 0x4ed90b
mov ecx, dword [esi]
test byte [ecx + 4], 1
je 0x4ed914
mov edx, dword [esp + 0x5c]
movsx ecx, word [ecx + 0x24]
cmp ecx, dword [edx + 0x2c]
jne 0x4ed914
add esi, 0x30
cmp esi, edi
jb 0x4ed8e4
jmp 0x4ed918
cmp esi, edi
jb 0x4ed986
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x1c]
not edx
and dword [esp + 0x44], edx
not ecx
and dword [esp + 0x40], ecx
cmp eax, edi
jae 0x4ed950
mov esi, dword [esp + 0x50]
mov edx, dword [eax + 0x28]
mov ecx, dword [eax + 0x2c]
and edx, dword [esi + 8]
and ecx, dword [esi + 0xc]
or edx, ecx
je 0x4ed949
or word [eax + 0xa], 4
add eax, 0x30
cmp eax, edi
jb 0x4ed934
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x4c]
movzx ecx, byte [esi + 0x2c]
lea eax, [ecx - 1]
cmp edi, eax
je 0x4ed97d
sub ecx, edi
imul eax, ecx, 0x58
sub eax, 0x58
push eax
mov eax, dword [esp + 0x38]
push eax
add eax, 0xffffffa8
push eax
call fcn.005cb860
add esp, 0xc
dec byte [esi + 0x2c]
dec dword [esp + 0x2c]
jmp 0x4ed98e
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x4c]
mov eax, dword [esp + 0x34]
dec edi
sub eax, 0x58
mov dword [esp + 0x4c], edi
mov dword [esp + 0x34], eax
cmp edi, 1
jge 0x4ed870
mov ecx, dword [esi]
movsx eax, word [esi + 0x34]
add dword [ecx + 0x88], eax
test byte [esp + 0x24], 4
je 0x4eda23
mov eax, dword [esi + 0x338]
mov ecx, dword [eax + 0x24]
mov edx, ecx
shr edx, 0xc
and edx, 1
jne 0x4ed9ef
test byte [esp + 0x24], 8
je 0x4eda23
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x18]
cmp dword [eax + 0x38], edx
jne 0x4eda23
test ecx, 0x2000
je 0x4ed9ef
test byte [esp + 0x24], 0x10
je 0x4eda23
test edx, edx
mov edx, dword [esp + 0x10]
sete al
inc al
mov byte [esi + 0x2e], al
mov eax, dword [edx + 0x18]
test byte [eax + 0x24], 0x80
jne 0x4eda27
test cl, 0x40
je 0x4eda27
mov eax, dword [esi + 0x338]
and ecx, 0xffffffbf
mov dword [eax + 0x24], ecx
mov al, byte [esp + 0x24]
and al, 8
mov byte [esp + 0x23], al
jmp 0x4eda27
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x4edc99
mov eax, dword [esp + 0x54]
add eax, 0x48
mov dword [esp + 0x34], ecx
mov dword [esp + 0x14], eax
movzx eax, byte [eax - 0x14]
mov edi, 0xffff8000
lea eax, [eax + eax*8]
lea edx, [edx + eax*8]
add edx, 8
mov dword [esp + 0x18], edx
mov esi, dword [edx + 0x10]
mov dword [esp + 0x54], esi
mov ecx, dword [esi + 0x48]
test ecx, ecx
je 0x4eda7e
mov eax, dword [esp + 0x28]
xor edi, edi
mov eax, dword [eax + 0x10]
add eax, 0xc
cmp dword [eax], ecx
je 0x4eda7e
lea eax, [eax + 0x10]
inc edi
cmp dword [eax], ecx
jne 0x4eda76
test byte [esi + 0x24], 2
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
mov dword [esp + 0x1c], eax
jne 0x4edbfe
cmp dword [esi + 0xc], 0
jne 0x4edbfe
mov eax, dword [eax + 0x24]
test eax, 0x400
je 0x4edadc
mov eax, dword [esi + 0x40]
test eax, eax
je 0x4edabc
mov ecx, dword [esp + 0x28]
cmp dword [eax], ecx
je 0x4edabc
mov eax, dword [eax + 0x18]
test eax, eax
jne 0x4edab1
mov ecx, dword [esp + 0x30]
push 0xfffffffffffffff4
push eax
push 0
push 0
push dword [edx + 0x2c]
mov edx, 0xa5
call fcn.00495e50
add esp, 0x14
jmp 0x4edbfa
cmp dword [esi + 0x38], 0
jne 0x4edbfe
test al, 0x40
jne 0x4edbe5
test byte [esp + 0x24], 0x20
jne 0x4edbe5
mov edx, dword [esp + 8]
mov ecx, 0x60
cmp byte [edx + 0x2e], 0
je 0x4edb17
mov eax, dword [esp + 0x18]
mov ecx, 0x61
mov eax, dword [eax + 0x2c]
mov dword [edx + 0x14], eax
mov eax, dword [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x10]
push esi
mov edx, dword [eax + 0x2c]
push edi
call fcn.004c6770
mov eax, dword [esp + 0x14]
add esp, 0xc
cmp byte [eax + 0x2e], 0
jne 0x4edbd5
cmp word [esi + 0x2a], 0x40
jge 0x4edbd5
test byte [esi + 0x24], 0xe0
jne 0x4edbd5
mov eax, dword [esp + 0x18]
xor esi, esi
mov edx, dword [eax + 0x38]
mov ecx, dword [eax + 0x3c]
mov eax, edx
or eax, ecx
je 0x4edb6f
shrd edx, ecx, 1
inc esi
shr ecx, 1
mov eax, edx
or eax, ecx
jne 0x4edb62
mov edx, dword [esp + 0x30]
mov ecx, dword [edx]
cmp byte [ecx + 0x51], 0
je 0x4edb99
push esi
mov edx, 0xfffffffd
call fcn.00496640
movzx edx, byte [esp + 0x27]
add esp, 4
mov ecx, dword [esp + 0x30]
call fcn.004964b0
jmp 0x4edbfa
mov eax, dword [edx + 0x6c]
dec eax
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x68]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x4edbce
mov ecx, dword [esp + 0x30]
mov edx, eax
push 0xfffffffffffffffd
push esi
call fcn.00496800
movzx edx, byte [esp + 0x2b]
add esp, 8
mov ecx, dword [esp + 0x30]
call fcn.004964b0
jmp 0x4edbfa
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0xfd
movzx edx, byte [esp + 0x23]
mov ecx, dword [esp + 0x30]
call fcn.004964b0
jmp 0x4edbfa
push dword [esi]
mov ecx, dword [esp + 0x10]
mov edx, edi
push 0
push dword [esi + 0x1c]
call fcn.004b82d0
add esp, 0xc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
test dword [edx + 0x24], 0x200
je 0x4edc43
mov eax, dword [esp + 0x54]
mov esi, dword [edx + 0x20]
mov edx, 0x60
mov dword [esp + 0x50], esi
test byte [eax + 0x24], 0x80
je 0x4edd84
mov eax, dword [esi + 0x38]
and al, 3
cmp al, 2
jne 0x4edd84
test byte [esp + 0x24], 0x20
je 0x4edd84
mov eax, dword [ecx - 0x44]
mov dword [ecx - 0x40], eax
mov esi, dword [esp + 0xc]
test edi, edi
js 0x4edc77
mov eax, dword [esi + 0x74]
mov edx, esi
test eax, eax
mov ecx, edi
cmovne edx, eax
mov eax, 1
shl eax, cl
mov esi, dword [edx + 0x54]
test esi, eax
jne 0x4edc77
bts esi, edi
mov dword [edx + 0x54], esi
cmp edi, 1
jne 0x4edc77
mov ecx, edx
call fcn.004be530
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
add eax, 0x58
sub dword [esp + 0x34], 1
mov dword [esp + 0x14], eax
jne 0x4eda42
mov esi, dword [esp + 8]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x6c]
mov dword [esi + 0x38], eax
mov eax, dword [esp + 0x28]
cmp byte [eax + 0x51], 0
jne 0x4ed792
mov dword [esp + 0x1c], 0
test ecx, ecx
jle 0x4edd7c
lea edi, [esi + 0x324]
nop word [eax + eax]
mov eax, dword [edi + 0x14]
test dword [eax + 0x24], 0x4000
je 0x4edd17
mov ecx, dword [esp + 0x10]
lea eax, [edi - 0x34]
mov edx, dword [esp + 0x3c]
push eax
movzx eax, byte [edi]
push dword [esp + 0x48]
push dword [esp + 0x48]
lea eax, [eax + eax*8]
lea eax, [eax + 1]
lea eax, [ecx + eax*8]
mov ecx, dword [esp + 0x18]
push eax
call fcn.004e88f0
mov eax, dword [esp + 0x38]
add esp, 0x10
cmp byte [eax + 0x51], 0
jne 0x4ed792
push dword [esp + 0x24]
mov edx, dword [esp + 0x14]
lea esi, [edi - 0x34]
mov ecx, dword [esp + 0x10]
push esi
call fcn.004e26d0
push dword [esp + 0x4c]
mov ecx, dword [esp + 0x3c]
mov edx, ecx
push dword [esp + 0x4c]
push esi
mov esi, dword [esp + 0x30]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [esp + 0x20]
push esi
push dword [esp + 0x20]
mov dword [edi - 0x14], eax
call fcn.004e3bb0
mov ecx, dword [edi - 0x1c]
inc esi
mov dword [esp + 0x5c], eax
add esp, 0x1c
mov eax, dword [esp + 8]
add edi, 0x58
mov dword [esp + 0x44], edx
mov dword [esp + 0x1c], esi
mov dword [eax + 0x1c], ecx
cmp esi, dword [esp + 0x2c]
jl 0x4edcd0
mov esi, eax
pop edi
mov eax, esi
pop esi
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 8]
cmp byte [eax + 0x2e], 0
je 0x4eddba
mov eax, dword [esp + 0x18]
mov ecx, dword [ebp + 0x18]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 8]
test eax, eax
je 0x4eddac
nop
cmp eax, esi
je 0x4eddac
mov eax, dword [eax + 0x14]
inc ecx
test eax, eax
jne 0x4edda0
mov eax, dword [esp + 8]
mov edx, 0x61
mov dword [eax + 0x18], ecx
jmp 0x4edde6
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x4eddd1
test byte [esp + 0x24], 0x20
je 0x4eddd1
mov ecx, eax
mov edx, 0x5f
jmp 0x4edde6
mov eax, dword [esp + 0xc]
mov esi, dword [esp + 0xc]
mov ecx, dword [eax + 0x28]
lea eax, [ecx + 1]
mov dword [esi + 0x28], eax
mov esi, dword [esp + 0x50]
mov eax, dword [esp + 0x14]
push edi
mov dword [eax - 0x40], ecx
push dword [esi + 0x2c]
push ecx
mov ecx, dword [esp + 0x3c]
call fcn.00495a30
add esp, 0xc
mov edx, esi
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.004969b0
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x24]
test al, 0xf
je 0x4edc47
test eax, 0x88002
jne 0x4edc47
mov eax, dword [esp + 8]
test byte [eax + 0x28], 1
jne 0x4edc47
cmp byte [eax + 0x2f], 2
je 0x4edc47
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0x6c]
test eax, eax
jle 0x4edc47
lea ecx, [eax + eax*4]
mov eax, dword [edx + 0x68]
mov edx, 2
mov word [eax + ecx*4 - 0x12], dx
jmp 0x4edc47