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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x1c8
mov dword [esp + 0x70], ecx
mov ecx, dword [ebp + 8]
call 0x4d04bb
pop eax
mov ebx, edx
mov dword [esp + 0x28], eax
mov esi, dword [ecx + 0x2ec]
test esi, esi
je 0x4d04ec
cmp esi, 6
ja 0x4d22be
imul eax, esi, 0x7c
cmp dword [eax + ecx - 0x7c], 0x80000001
je 0x4d22be
lea edi, [eax + ecx - 0x7c]
jmp 0x4d04f2
mov edi, dword [ecx + 0x2e8]
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 0x34]
test ecx, ecx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], 0
je 0x4d0538
cmp byte [eax], 0x17
jne 0x4d0538
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 1
push 0x17
call fcn.004d22f0
add esp, 8
cmp byte [esp + 0xa8], 0
jne 0x4d067c
jmp 0x4d055d
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 0
push 0x18
call fcn.004d22f0
add esp, 8
cmp byte [esp + 0xa8], 0
jne 0x4d067c
mov eax, dword [esp + 0x40]
mov dword [esp + 8], edi
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0xb0]
mov edi, dword [esp + 0xb4]
cmp eax, dword [esp + 0x3c]
jae 0x4d0657
mov ecx, dword [esp + 0x38]
cmp byte [ecx + eax], 0x17
jne 0x4d0657
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 1
push 0x17
call fcn.004d22f0
add esp, 8
cmp byte [esp + 0xa8], 0
jne 0x4d067c
mov ecx, dword [esp + 0xb0]
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x80], ebx
cmp ecx, esi
mov edx, eax
sbb edx, edi
mov dl, 0x24
jb 0x4d0684
mov ebx, edi
mov edi, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
cmp edi, esi
mov esi, edx
sbb edx, ebx
mov dl, 0x1f
jb 0x4d0684
cmp ecx, edi
mov dl, 0x1d
sbb eax, esi
jb 0x4d0684
mov eax, dword [esp + 0x40]
mov dl, 0x1a
cmp eax, dword [esp + 0x3c]
jne 0x4d083d
mov eax, dword [ebp + 0x14]
mov edi, dword [esp + 8]
mov dword [esp + 0x134], eax
mov eax, dword [edi + 0x4c]
test eax, eax
je 0x4d06ad
mov ecx, dword [edi + 0x50]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0xb0], 0
call fcn.004ce990
mov esi, dword [ebp + 8]
test al, 1
mov eax, edx
je 0x4d06c1
mov edx, eax
jmp 0x4d0684
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
push 0
push 0x18
call fcn.004d22f0
add esp, 8
cmp byte [esp + 0xa8], 0
je 0x4d05b4
movzx edx, byte [esp + 0xa9]
movzx ecx, dl
xor eax, eax
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4d0698
cmp ecx, 2
je 0x4d0698
mov al, 1
mov ecx, dword [esp + 0x70]
mov byte [ecx + 1], al
mov byte [ecx + 2], dl
mov byte [ecx], 1
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [esp + 0x2c], 0
mov esi, dword [ebp + 8]
je 0x4d079e
mov dl, 0x22
xor eax, eax
jmp 0x4d0698
mov eax, dword [esp + 0xb0]
cmp eax, dword [esp + 0xac]
jne 0x4d06ec
cmp dword [esp + 0x2c], 0
je 0x4d077d
mov al, 0x22
test dl, 1
je 0x4d0653
jmp 0x4d0788
mov bh, dl
lea ecx, [esp + 0x38]
lea edx, [esp + 0xa8]
push 2
call fcn.004ce780
add esp, 4
mov esi, dword [esp + 0x38]
test esi, esi
je 0x4d0736
mov edx, dword [esp + 0x3c]
mov al, 0x1a
test edx, edx
je 0x4d0653
movzx ecx, byte [esi]
test cl, cl
je 0x4d0740
mov esi, dword [ebp + 8]
js 0x4d0653
cmp edx, 1
mov dl, bh
jne 0x4d0653
jmp 0x4d075b
movzx eax, byte [esp + 0x3c]
jmp 0x4d0653
dec edx
je 0x4d0754
movzx ecx, byte [esi + 1]
mov esi, dword [ebp + 8]
test cl, cl
jns 0x4d0653
jmp 0x4d0729
mov esi, dword [ebp + 8]
xor ecx, ecx
mov dl, bh
cmp dword [esp + 0x2c], 0
je 0x4d077d
mov al, 0x22
test dl, 1
je 0x4d0653
movzx ecx, cl
mov al, 0x33
cmp ecx, dword [ebp + 0x14]
jb 0x4d0653
jmp 0x4d0788
mov al, 0x1c
test dl, 1
jne 0x4d0653
mov eax, dword [esp + 0xb0]
mov dl, 0x1a
cmp eax, dword [esp + 0xac]
jne 0x4d083d
mov eax, dword [edi + 0x5c]
test eax, eax
je 0x4d0844
mov ecx, dword [edi + 0x60]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0xb0], 0
mov esi, dword [ecx + 4]
mov edi, dword [ecx + 8]
mov ebx, ecx
jmp 0x4d07ea
mov eax, dword [esp + 0xb0]
cmp eax, dword [esp + 0xac]
je 0x4d1d31
lea ecx, [esp + 0x38]
lea edx, [esp + 0xa8]
push 6
call fcn.004ce780
add esp, 4
mov eax, dword [esp + 0x38]
test eax, eax
je 0x4d1d27
cmp edi, dword [esp + 0x3c]
jne 0x4d07d6
push edi
push eax
push esi
call fcn.004ef6f4
add esp, 0xc
test eax, eax
jne 0x4d07d6
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
sub eax, ecx
add eax, ecx
jb 0x4d22be
mov esi, dword [ebp + 8]
jmp 0x4d0854
xor eax, eax
jmp 0x4d0698
mov ebx, dword [esp + 0x80]
test byte [ebx], 1
je 0x4d1d38
mov eax, dword [ebx + 0x24]
test eax, eax
je 0x4d1d41
mov edi, dword [ebx + 0x20]
lea eax, [eax + eax*8]
xor ecx, ecx
mov edx, dword [ebx + 0x10]
lea eax, [edi + eax*4]
mov dword [esp + 0x140], edx
mov dword [esp + 0x154], eax
movzx eax, byte [ebx + 0x16]
mov byte [esp + 0x26], al
movzx eax, byte [ebx + 0x15]
mov byte [esp + 0x17], al
test al, 1
mov eax, 0x38
cmove eax, ecx
mov cl, 0x37
mov dword [esp + 0x13c], eax
movzx eax, byte [ebx + 0x14]
mov byte [esp + 0x27], al
mov eax, dword [ebx + 0x18]
mov dword [esp + 0x50], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x4c], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x144], eax
lea eax, [eax + edx*4]
mov dword [esp + 0x7c], eax
mov eax, dword [edi + 4]
mov edx, dword [edi + 8]
mov dword [esp + 0x6c], edi
mov dword [esp + 8], eax
mov eax, dword [esi + 0x2ec]
test eax, eax
je 0x4d08ff
cmp eax, 6
ja 0x4d22be
mov edi, eax
imul eax, eax, 0x7c
cmp dword [eax + esi - 0x7c], 0x80000001
je 0x4d22be
lea eax, [eax + esi - 0x7c]
jmp 0x4d0907
mov edi, eax
mov eax, dword [esi + 0x2e8]
cmp dword [eax + 0x30], edx
jne 0x4d092b
mov ebx, edx
push edx
push dword [esp + 0xc]
push dword [eax + 0x2c]
mov byte [esp + 0x21], cl
call fcn.004ef6f4
movzx ecx, byte [esp + 0x21]
add esp, 0xc
test eax, eax
je 0x4d097a
mov edx, dword [esp + 0x34]
and edx, 0xff000000
or edx, 0x370001
test dl, 1
je 0x4d1d47
test edx, 0x100
jne 0x4d1d53
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x34], edx
shr edx, 0x10
movzx ecx, cl
add edi, 0x24
call fcn.004d41c0
cmp edi, dword [esp + 0x154]
mov ecx, eax
jne 0x4d08c5
jmp 0x4d1d5c
test edi, edi
mov dword [esp + 4], ebx
je 0x4d0993
imul eax, edi, 0x7c
cmp dword [eax + esi - 0x7c], 0x80000001
je 0x4d22be
mov eax, dword [esp + 0x6c]
cmp byte [esp + 0x26], 2
mov dword [esp + 0x30], edi
mov ecx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp], eax
jne 0x4d0a5b
mov esi, dword [esp + 0x30]
test esi, esi
je 0x4d09de
cmp esi, 6
ja 0x4d22be
mov eax, dword [ebp + 8]
lea edi, [esi - 1]
imul ebx, edi, 0x7c
cmp dword [eax + ebx], 0x80000001
je 0x4d22be
add ebx, eax
jmp 0x4d09e9
mov eax, dword [ebp + 8]
xor edi, edi
mov ebx, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [ebx + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004d2940
add esp, 0x10
cmp al, 0x46
jne 0x4d1b75
mov eax, dword [ebx + 0x44]
mov ecx, dword [ebx + 0x48]
test esi, esi
mov esi, edi
mov dword [esp + 0x10], eax
mov dword [esp], ecx
jne 0x4d09b7
mov eax, dword [esp + 0x6c]
xor ecx, ecx
cmp dword [eax + 0x18], 0x80000001
je 0x4d0a35
mov ecx, dword [eax + 0x1c]
mov edx, dword [ebp + 0x18]
mov esi, dword [ebp + 8]
mov eax, dword [eax + 0x20]
mov edx, dword [edx + 8]
mov dword [esp + 8], edx
mov edx, dword [esi + 0x2e8]
mov dword [esp + 0x130], edx
mov edx, dword [esp + 0x30]
jmp 0x4d1087
cmp dword [esp + 0x140], 0
mov edi, dword [esp + 0x30]
je 0x4d1931
xor ecx, ecx
jmp 0x4d0ab5
test byte [esp + 0x17], 1
mov edi, dword [esp + 0x68]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
jne 0x4d1bf6
test esi, esi
mov esi, dword [ebx + 0x44]
mov edx, dword [ebx + 0x48]
mov ecx, dword [ebx + 0x54]
mov eax, dword [ebx + 0x58]
mov dword [esp + 0x10], esi
mov dword [esp], edx
mov esi, dword [ebx + 0x3c]
mov edx, dword [ebx + 0x40]
mov dword [esp + 0x78], eax
mov dword [esp + 8], esi
mov dword [esp + 4], edx
je 0x4d0a23
mov esi, edi
test edi, edi
mov dword [esp + 0x54], ecx
je 0x4d0ae2
cmp esi, 6
ja 0x4d22be
mov eax, dword [ebp + 8]
lea edi, [esi - 1]
imul ebx, edi, 0x7c
cmp dword [eax + ebx], 0x80000001
je 0x4d22be
add ebx, eax
jmp 0x4d0aed
mov eax, dword [ebp + 8]
xor edi, edi
mov ebx, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [ebx + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004d2940
add esp, 0x10
mov ecx, dword [esp + 4]
cmp al, 0x46
jne 0x4d190f
cmp dword [ebx + 0x30], ecx
jne 0x4d22be
mov eax, ecx
mov ecx, dword [ebx + 0x2c]
push eax
push dword [esp + 0xc]
mov dword [esp + 0x20], ecx
push ecx
call fcn.004ef6f4
add esp, 0xc
test eax, eax
jne 0x4d22be
movzx ecx, byte [esp + 0x27]
test esi, esi
setne al
xor cl, 1
test al, cl
jne 0x4d0a88
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x68], edi
mov ebx, dword [esp + 0x144]
mov edi, dword [esp + 4]
mov dword [esp + 0x20], esi
jmp 0x4d0b7f
mov edi, dword [esp + 4]
add ebx, 4
cmp ebx, dword [esp + 0x7c]
je 0x4d0a71
mov ecx, dword [ebx]
mov eax, dword [ecx + 8]
mov dword [esp + 0xc], eax
neg eax
jno 0x4d0bbe
cmp dword [ecx + 0x2c], edi
jne 0x4d0b72
push edi
push dword [esp + 0x1c]
push dword [ecx + 0x28]
mov dword [esp + 0x14], ecx
call fcn.004ef6f4
mov esi, dword [esp + 0x14]
add esp, 0xc
test eax, eax
jne 0x4d0b72
mov edx, dword [esi + 0x38]
mov eax, 0x3c
test edx, edx
jne 0x4d0bf2
jmp 0x4d0e83
cmp dword [ecx + 0x10], edi
jne 0x4d0b72
push edi
push dword [esp + 0x1c]
push dword [ecx + 0xc]
mov dword [esp + 0x14], ecx
call fcn.004ef6f4
mov esi, dword [esp + 0x14]
add esp, 0xc
test eax, eax
jne 0x4d0b72
xor eax, eax
cmp eax, dword [esi + 0x38]
jo 0x4d0ea6
mov edx, dword [esi + 0x3c]
mov eax, 0x40
lea ecx, [esp + 0xa8]
mov dword [esp + 8], esi
push dword [esi + eax]
call fcn.004d2ae0
add esp, 4
movzx eax, byte [esp + 0xbb]
cmp al, 2
je 0x4d0b72
test al, 1
jne 0x4d22be
cmp dword [esp + 0x20], 0
sete al
test byte [esp + 0xb9], al
jne 0x4d0b72
movzx ecx, byte [esp + 0xb8]
xor cl, 1
or al, cl
test al, 1
je 0x4d0b72
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 0x74]
test esi, esi
je 0x4d0e7d
mov eax, dword [esp + 0xa8]
test eax, eax
je 0x4d0b6e
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xac]
mov edi, dword [edx + 0x78]
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x38]
mov dword [esp + 0x40], 0
call fcn.004d3140
mov eax, dword [esp + 0xac]
test eax, eax
sete cl
or cl, byte [esp + 0xa8]
test cl, 1
jne 0x4d0b6e
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], edi
test edi, edi
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x5c], eax
mov dword [esp + 0xa4], 0
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], edx
je 0x4d0b72
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x9c]
call fcn.004cebd0
test byte [esp + 0xa8], 1
jne 0x4d0b72
mov eax, dword [esp + 0xb4]
or eax, dword [esp + 0xbc]
jne 0x4d0b72
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4d0b72
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x38], eax
lea edx, [esp + 0x38]
mov dword [esp + 0x3c], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0x40], 0
call fcn.004d3140
test byte [esp + 0xa8], 1
jne 0x4d0b72
mov eax, dword [esp + 0xac]
test eax, eax
je 0x4d0b72
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], edx
jmp 0x4d0e56
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x5c]
call fcn.004d3360
movzx eax, byte [esp + 0xa8]
cmp eax, 6
je 0x4d0e64
cmp eax, 3
jne 0x4d0e53
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x88]
jne 0x4d0deb
mov eax, dword [esp + 0x64]
mov edi, dword [esp + 4]
cmp eax, dword [esp + 0x60]
jne 0x4d0da1
jmp 0x4d0e64
mov esi, dword [esp + 0xac]
mov edi, dword [esp + 0xb0]
jmp 0x4d0e0e
cmp eax, 5
mov eax, dword [esp + 0x8c]
cmp eax, dword [esp + 0x88]
je 0x4d0ddb
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x84]
call fcn.004d3360
movzx eax, byte [esp + 0xa8]
cmp eax, 6
je 0x4d0ddb
cmp eax, 3
jne 0x4d0dfb
cmp edi, dword [esp + 0xb0]
jne 0x4d0dfe
push edi
push dword [esp + 0xb0]
push esi
call fcn.004ef6f4
add esp, 0xc
test eax, eax
jne 0x4d0dfe
jmp 0x4d0e7d
cmp eax, 5
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x60]
jne 0x4d0da1
mov eax, dword [esp + 0xa4]
cmp eax, dword [esp + 0xa0]
jne 0x4d0cf1
jmp 0x4d0b72
neg dword [esp + 0xc]
jno 0x4d0ea6
mov eax, 0x24
mov ecx, 0x1c
mov edx, 0x14
mov dword [esp + 0xc], 0x10
mov edi, 0x18
mov ebx, 0x20
jmp 0x4d0ec7
mov eax, 0x34
mov ecx, 0x28
mov edx, 0x1c
mov edi, 0x24
mov ebx, 0x30
mov dword [esp + 0xc], 0x18
mov esi, dword [esp + 8]
mov eax, dword [esi + eax]
mov ebx, dword [esi + ebx]
mov ecx, dword [esi + ecx]
mov edi, dword [esi + edi]
mov edx, dword [esi + edx]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xc]
mov esi, dword [esi + eax]
mov eax, dword [esp + 0x18]
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], edx
mov dword [esp + 0xb0], edi
mov dword [esp + 0xb4], ecx
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0xb8], ebx
mov dword [esp + 0xbc], eax
push dword [ebp + 0x18]
lea eax, [esp + 0xac]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004d2940
add esp, 0x10
cmp al, 0x46
jne 0x4d1bd1
cmp byte [esp + 0x26], 0
mov ecx, dword [ebp + 0xc]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
jne 0x4d0f71
mov edx, dword [esp + 8]
xor edi, edi
xor eax, eax
cmp edi, dword [edx + 8]
seto al
shl eax, 6
cmp ecx, dword [edx + eax]
mov ecx, dword [ebp + 0x10]
sbb ecx, dword [edx + eax + 4]
jae 0x4d1d20
mov eax, dword [esp + 0x54]
test eax, eax
je 0x4d1019
mov ecx, dword [esp + 0x78]
lea edx, [esp + 0xa8]
mov dword [esp + 0xa8], eax
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], 0
lea ecx, [esp + 0x38]
push 3
call fcn.004ce780
add esp, 4
mov edx, dword [esp + 0x38]
test edx, edx
je 0x4d1cf5
mov esi, dword [esp + 0x3c]
xor edi, edi
mov al, 0x1a
test esi, esi
je 0x4d1b8e
movzx ecx, byte [edx]
cmp cl, 7
ja 0x4d1b8e
cmp esi, 1
sete ah
test cl, cl
setne ch
test ah, ch
jne 0x4d1b8e
cmp esi, 1
je 0x4d22be
mov ah, 0xff
shl ah, cl
test cl, cl
je 0x4d1007
not ah
and ah, byte [edx + esi - 1]
jne 0x4d1b8e
test byte [edx + 1], 2
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x1c]
je 0x4d1d19
mov edx, dword [esp + 8]
lea ecx, [esp + 0xa8]
push dword [ebx + 0x10]
push dword [ebx + 0xc]
call fcn.004d3620
add esp, 8
mov eax, dword [esp + 0xa8]
mov edi, dword [esp + 0x68]
mov ecx, eax
and cl, 3
cmp cl, 2
je 0x4d0a88
cmp eax, 3
jne 0x4d1cec
movzx eax, byte [esp + 0xb0]
jmp 0x4d1cfa
mov eax, dword [esp + 0x64]
cmp eax, dword [esp + 0x60]
jne 0x4d1c7e
cmp dword [esp + 0x30], 0
mov ecx, dword [edx + 0x64]
mov eax, dword [edx + 0x68]
mov edx, dword [esp + 0x128]
je 0x4d1bba
test edx, edx
mov dword [esp + 0x30], edx
je 0x4d10b4
cmp edx, 6
ja 0x4d22be
dec edx
mov dword [esp + 0x128], edx
imul edx, edx, 0x7c
cmp dword [esi + edx], 0x80000001
je 0x4d22be
add edx, esi
jmp 0x4d10c6
mov edx, dword [esp + 0x130]
mov dword [esp + 0x128], 0
test ecx, ecx
je 0x4d106f
test eax, eax
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], 0
mov dword [esp + 0x148], edx
je 0x4d1188
xor edi, edi
cmp byte [ecx], 0xa0
mov ecx, 0
mov dword [esp + 0x98], 0
jne 0x4d1144
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x5c]
push 0xa0
call fcn.004ce780
add esp, 4
mov eax, dword [esp + 0xa8]
test eax, eax
mov dword [esp + 0x98], eax
je 0x4d1cb2
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x14c], eax
mov eax, dword [esp + 0x60]
cmp ecx, eax
jae 0x4d1186
mov eax, dword [esp + 0x5c]
cmp byte [eax + ecx], 0xa1
jne 0x4d1186
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x5c]
push 0xa1
call fcn.004ce780
add esp, 4
mov edi, dword [esp + 0xa8]
test edi, edi
je 0x4d1cb2
mov eax, dword [esp + 0xac]
mov dword [esp + 0x78], eax
jmp 0x4d1195
jmp 0x4d1195
mov dword [esp + 0x98], 0
xor edi, edi
mov eax, dword [esp + 8]
mov dword [esp + 4], edi
mov dword [esp], eax
mov eax, dword [esp + 0x30]
test eax, eax
mov dword [esp + 0x1c], eax
je 0x4d11d0
cmp eax, 6
ja 0x4d22be
lea edx, [eax - 1]
imul ecx, edx, 0x7c
cmp dword [esi + ecx], 0x80000001
je 0x4d22be
add ecx, esi
mov dword [esp + 0x54], edx
jmp 0x4d11df
mov ecx, dword [esp + 0x130]
mov dword [esp + 0x54], 0
mov edx, dword [ecx + 0x3c]
mov esi, dword [ecx + 0x40]
mov eax, dword [ecx + 0x6c]
mov ecx, dword [ecx + 0x70]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], 0
mov dword [esp + 0x38], edx
mov edx, dword [esp]
mov dword [esp + 0x3c], esi
mov ebx, edx
test eax, eax
mov dword [esp], edx
mov dword [esp + 0xc], ebx
je 0x4d1225
mov eax, dword [esp + 0x48]
cmp eax, dword [esp + 0x44]
jne 0x4d1241
mov dword [esp + 0x40], 0
cmp dword [esp + 0x38], 0
mov esi, dword [ebp + 8]
mov dword [esp + 0x38], 0
mov byte [esp + 0x18], 1
jne 0x4d128e
jmp 0x4d189b
lea ecx, [esp + 0xa8]
lea edx, [esp + 0x40]
call fcn.004d3360
movzx ecx, byte [esp + 0xa8]
movzx eax, byte [esp + 0xa9]
mov esi, dword [ebp + 8]
cmp cl, 5
mov byte [esp + 0x18], cl
je 0x4d18bc
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xb0]
mov byte [esp + 0x5b], al
mov dword [esp + 0x12c], edx
mov dword [esp + 0x74], ecx
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x14c]
mov ecx, dword [esp + 0x78]
mov byte [esp + 0xa8], 0
mov esi, 1
xor ebx, ebx
mov dword [esp + 0xac], eax
mov dword [esp + 0xb0], edx
mov byte [esp + 0xb4], 1
mov dword [esp + 0xb8], edi
mov dword [esp + 0xbc], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 2
movzx edx, byte [ecx]
cmp dl, 2
mov byte [esp + 0x20], dl
je 0x4d181b
mov edx, dword [ecx + 4]
test edx, edx
je 0x4d1310
mov eax, edx
mov edx, dword [ecx + 8]
mov ecx, esi
jmp 0x4d1330
test edi, edi
setne cl
xor bl, 1
test cl, bl
je 0x4d181b
mov edx, dword [esp + 0x78]
mov ecx, 2
mov eax, edi
mov byte [esp + 0x20], 1
mov esi, dword [ebp + 8]
test edx, edx
mov dword [esp + 0xc0], ecx
je 0x4d1804
cmp dword [esp + 0xc], 0
mov dword [esp + 0x10], eax
mov al, 0x2e
je 0x4d18bc
mov eax, dword [esp + 0x10]
xor ebx, ebx
mov dword [esp + 8], edx
mov dword [esp + 0x150], ecx
mov dword [esp + 0x94], 0
mov dword [esp + 0x68], 0
mov edx, dword [esp + 0xc]
mov dword [esp], edx
dec edx
cmp ebx, dword [esp + 8]
mov ch, 0x1a
jae 0x4d1876
mov cl, byte [eax + ebx]
dec dword [esp]
mov eax, ecx
not al
test al, 0x1f
je 0x4d1873
lea eax, [ebx + 1]
cmp eax, dword [esp + 8]
jae 0x4d1873
mov eax, dword [esp + 0x10]
mov dword [esp + 0xc], edx
lea edi, [ebx + 2]
movsx edx, byte [eax + ebx + 1]
test edx, edx
jns 0x4d14f6
movzx eax, dl
add eax, 0xffffff7f
cmp eax, 3
ja 0x4d186f
mov eax, dword [eax*4 + 0x4d22c0]
mov edx, dword [esp + 8]
add eax, dword [esp + 0x28]
jmp eax
mov ebx, edi
add ebx, edx
jb 0x4d186f
cmp cl, 0x30
jne 0x4d186f
cmp ebx, dword [esp + 8]
ja 0x4d186f
add edi, eax
lea ecx, [esp + 0x84]
mov dword [esp + 0x9c], edi
mov dword [esp + 0xa0], edx
lea edx, [esp + 0x9c]
mov dword [esp + 0xa4], 0
call fcn.004d3360
movzx ecx, byte [esp + 0x84]
movzx edx, byte [esp + 0x85]
cmp cl, 5
je 0x4d1829
mov eax, dword [esp + 0xa4]
cmp eax, dword [esp + 0xa0]
jne 0x4d186d
cmp byte [esp + 0x18], 4
ja 0x4d15bb
movzx esi, byte [esp + 0x18]
mov edi, dword [esp + 0x88]
mov eax, dword [esp + 0x8c]
mov esi, dword [esi*4 + 0x4d22d0]
add esi, dword [esp + 0x28]
jmp esi
cmp ebx, dword [esp + 8]
je 0x4d17d3
mov edx, dword [esp + 0xc]
mov esi, dword [ebp + 8]
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x10]
add edx, 0xffffffff
jb 0x4d137f
jmp 0x4d18b6
mov eax, dword [ebp + 0x18]
mov edx, dword [esp + 0xc]
mov edi, dword [esp + 4]
mov dword [eax + 8], edx
test byte [esp + 0x68], 1
mov ecx, dword [esp + 0x150]
je 0x4d17fd
test byte [esp + 0x94], 1
je 0x4d18d2
mov dword [esp + 8], edx
mov dword [esp], edx
cmp ecx, 2
mov bl, 1
lea ecx, [esp + 0xb4]
mov esi, 2
jne 0x4d12f0
mov eax, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0xc], eax
jmp 0x4d1841
mov ecx, dword [esp + 0xc]
mov eax, dword [ebp + 0x18]
mov dword [eax + 8], ecx
mov edi, dword [esp + 4]
cmp dl, 0x47
mov ebx, ecx
mov dword [esp], ecx
jne 0x4d1887
mov edx, dword [esp + 0xc]
mov eax, dword [esp + 0x40]
mov dword [esp + 8], edx
mov edx, dword [esp]
test eax, eax
mov dword [esp], edx
mov dword [esp + 0xc], ebx
jne 0x4d1213
jmp 0x4d1225
mov ch, 0xc
mov edi, dword [esp + 4]
mov edx, dword [esp]
mov eax, dword [ebp + 0x18]
mov dword [esp], edx
mov dword [esp + 0xc], edx
mov dword [eax + 8], edx
mov al, ch
mov edx, eax
mov ecx, dword [esp + 0xc]
mov eax, edx
and al, 0x7e
cmp al, 0x46
mov dword [esp + 8], ecx
jne 0x4d1cba
cmp dword [esp + 0x1c], 0
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x148]
jne 0x4d11a4
jmp 0x4d1061
xor edx, edx
mov ch, 0x2e
jmp 0x4d1876
mov ecx, dword [esp + 8]
mov dword [esp + 0xc], ecx
jmp 0x4d1885
mov esi, dword [ebp + 8]
mov al, 0x32
mov dword [esp], edx
jmp 0x4d1885
movzx ecx, al
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4d1b8c
mov edi, 0x100
cmp ecx, 2
jne 0x4d1b8e
jmp 0x4d1b8c
test byte [esp + 0x27], 1
je 0x4d1a12
test byte [esp + 0x17], 1
je 0x4d196a
test edi, edi
je 0x4d1bfc
imul eax, dword [esp + 0x30], 0x7c
mov ecx, dword [ebp + 8]
cmp dword [eax + ecx - 0x7c], 0x80000001
je 0x4d22be
lea esi, [eax + ecx - 0x7c]
jmp 0x4d1c05
test edi, edi
je 0x4d1991
cmp edi, 6
ja 0x4d22be
mov eax, dword [ebp + 8]
lea ebx, [edi - 1]
imul esi, ebx, 0x7c
cmp dword [eax + esi], 0x80000001
je 0x4d22be
add esi, eax
jmp 0x4d199c
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esi + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004d2940
add esp, 0x10
cmp al, 0x46
jne 0x4d1b75
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4d22be
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call fcn.004ef6f4
add esp, 0xc
test eax, eax
jne 0x4d22be
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x3c]
test edi, edi
mov edi, ebx
mov dword [esp], ecx
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
jne 0x4d196a
jmp 0x4d0a23
test byte [esp + 0x17], 1
je 0x4d1ad1
mov edi, dword [esp + 0x30]
test edi, edi
je 0x4d1a48
cmp edi, 6
ja 0x4d22be
mov eax, dword [ebp + 8]
mov ebx, edi
dec edi
imul esi, edi, 0x7c
cmp dword [eax + esi], 0x80000001
je 0x4d22be
add esi, eax
jmp 0x4d1a55
mov eax, dword [ebp + 8]
mov ebx, edi
xor edi, edi
mov esi, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esi + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004d2940
add esp, 0x10
cmp al, 0x46
jne 0x4d1b75
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4d22be
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call fcn.004ef6f4
add esp, 0xc
test eax, eax
jne 0x4d22be
test ebx, ebx
je 0x4d1c75
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x3c]
mov dword [esp], ecx
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
test edi, edi
jne 0x4d1a25
jmp 0x4d1a48
test edi, edi
je 0x4d1af8
cmp edi, 6
ja 0x4d22be
mov eax, dword [ebp + 8]
lea ebx, [edi - 1]
imul esi, ebx, 0x7c
cmp dword [eax + esi], 0x80000001
je 0x4d22be
add esi, eax
jmp 0x4d1b03
mov eax, dword [ebp + 8]
xor ebx, ebx
mov esi, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esi + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004d2940
add esp, 0x10
cmp al, 0x46
jne 0x4d1b75
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4d22be
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call fcn.004ef6f4
add esp, 0xc
test eax, eax
jne 0x4d22be
mov ecx, dword [esi + 0x48]
mov eax, dword [esi + 0x44]
mov edx, dword [esi + 0x3c]
test edi, edi
mov edi, ebx
mov dword [esp], ecx
mov ecx, dword [esi + 0x40]
mov dword [esp + 0x10], eax
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
jne 0x4d1ad1
jmp 0x4d0a23
movzx ecx, al
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4d1b8c
cmp ecx, 2
je 0x4d1b8c
mov edi, 0x100
jmp 0x4d1b8e
xor edi, edi
mov edx, dword [esp + 0x34]
mov esi, dword [ebp + 8]
movzx eax, al
shl eax, 0x10
and edx, 0xff000000
or edx, edi
lea edx, [eax + edx + 1]
movzx ecx, byte [esp + 0x15]
test dl, 1
jne 0x4d0944
jmp 0x4d1d47
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x6c]
and edx, 0xffffff00
mov dword [esp + 0x124], eax
jmp 0x4d1ba7
movzx ecx, al
cmp ecx, 0x29
je 0x4d1c84
cmp ecx, 0x43
je 0x4d1c88
cmp ecx, 0x45
jne 0x4d1c8a
mov al, 0x44
jmp 0x4d1c8a
xor edi, edi
mov al, 0x38
jmp 0x4d1b8e
mov eax, dword [ebp + 8]
mov esi, dword [eax + 0x2e8]
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
lea eax, [esi + 0x14]
push dword [ebp + 0x18]
push eax
push dword [esp + 8]
push dword [esp + 0x1c]
call fcn.004d2940
add esp, 0x10
movzx ecx, al
lea edx, [ecx - 0x2e]
cmp edx, 2
jb 0x4d1b85
cmp ecx, 0x31
je 0x4d1b85
xor edi, edi
cmp ecx, 0x46
jne 0x4d1b8e
mov eax, dword [esp + 4]
cmp dword [esi + 0x30], eax
jne 0x4d22be
push eax
push dword [esp + 0xc]
push dword [esi + 0x2c]
call fcn.004ef6f4
add esp, 0xc
mov ecx, eax
mov al, 0x38
test ecx, ecx
je 0x4d1b8e
jmp 0x4d22be
mov eax, dword [esp + 0x13c]
jmp 0x4d1cfa
xor eax, eax
mov dl, 0x1a
jmp 0x4d1cd1
mov al, 0x28
jmp 0x4d1c8a
mov al, 0x42
xor edi, edi
cmp al, 0x29
je 0x4d1cab
movzx ecx, al
cmp ecx, 0x45
je 0x4d1ca4
cmp ecx, 0x43
jne 0x4d1cfa
mov al, 0x42
jmp 0x4d1b8e
mov al, 0x44
jmp 0x4d1b8e
mov al, 0x28
jmp 0x4d1b8e
movzx edx, byte [esp + 0xac]
movzx ecx, dl
xor eax, eax
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4d1cd1
cmp ecx, 2
je 0x4d1cd1
mov eax, 0x100
mov ecx, dword [esp + 0x34]
movzx edi, dl
shl edi, 0x10
and ecx, 0xff000000
or ecx, eax
lea edx, [edi + ecx + 1]
jmp 0x4d1ba7
xor edi, edi
mov al, 0x20
jmp 0x4d1b8e
movzx eax, byte [esp + 0x3c]
movzx ecx, al
xor edi, edi
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4d1b8e
cmp ecx, 2
jne 0x4d1b85
jmp 0x4d1b8e
mov al, 0x2a
jmp 0x4d1b8e
mov al, 0x21
jmp 0x4d1b8e
movzx edx, byte [esp + 0x3c]
jmp 0x4d0684
mov dl, 0x34
jmp 0x4d0684
mov dl, 0x34
xor eax, eax
jmp 0x4d0698
xor eax, eax
mov dl, 0x37
jmp 0x4d1d75
mov ecx, dword [esp + 0x124]
jmp 0x4d225f
mov ecx, dword [esp + 0x124]
jmp 0x4d1d7f
mov edx, ecx
movzx ecx, cl
xor eax, eax
add ecx, 0xffffffd2
cmp ecx, 3
ja 0x4d1d75
cmp ecx, 2
je 0x4d1d75
mov eax, 0x100
movzx ecx, dl
shl ecx, 0x10
lea edx, [ecx + eax + 1]
test dl, 1
je 0x4d225f
test edx, 0x100
jne 0x4d226e
mov ecx, dword [esp + 0x80]
shr edx, 0x10
mov dword [esp + 0x34], edx
mov eax, dword [ecx + 0x2c]
test eax, eax
je 0x4d227c
cmp dword [esp + 0x2c], 1
mov edi, dword [ecx + 0x28]
lea eax, [eax + eax*2]
sbb dword [esp + 0x134], 0xffffffff
lea ebx, [edi + eax*4]
mov dword [esp + 0x1c], ebx
mov edx, dword [edi + 4]
lea ecx, [esp + 0xa8]
push dword [edi + 8]
call fcn.004cf0d0
add esp, 4
mov ecx, dword [esp + 0xa8]
movzx eax, byte [esp + 0xac]
cmp ecx, 0x80000001
jne 0x4d1e21
mov edx, eax
xor ecx, ecx
add dl, 0xd2
cmp dl, 4
jae 0x4d1e09
movzx ecx, dl
mov ecx, dword [ecx*4 + 0x5f82b8]
mov edx, dword [esp + 0x28]
shl eax, 0x10
and edx, 0xff000000
or edx, ecx
lea edx, [eax + edx + 1]
jmp 0x4d1fc3
lea ebx, [esp + 0xb0]
mov dword [esp], ecx
movzx ecx, byte [esp + 0xaf]
movsd xmm1, qword [ebx + 8]
movsd xmm2, qword [ebx + 0x10]
mov edx, dword [ebx + 0x30]
movsd xmm0, qword [ebx]
mov dword [esp + 8], ecx
movzx ecx, word [esp + 0xad]
movsd qword [esp + 0x160], xmm1
movsd xmm1, qword [ebx + 0x18]
movsd qword [esp + 0x168], xmm2
movsd xmm2, qword [ebx + 0x20]
mov dword [esp + 0x188], edx
mov edx, dword [esp + 0xe4]
movsd qword [esp + 0x158], xmm0
movsd qword [esp + 0x170], xmm1
movsd xmm1, qword [ebx + 0x28]
movsd qword [esp + 0x178], xmm2
movsd xmm2, qword [ebx + 0x6c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xe8]
movsd qword [esp + 0x180], xmm1
movsd xmm1, qword [ebx + 0x64]
movsd qword [esp + 0x1b8], xmm2
movsd xmm2, qword [ebx + 0x5c]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0xec]
movsd qword [esp + 0x1b0], xmm1
movsd xmm1, qword [ebx + 0x54]
movsd qword [esp + 0x1a8], xmm2
movsd xmm2, qword [ebx + 0x44]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0xf0]
movsd qword [esp + 0x1a0], xmm1
movsd xmm1, qword [ebx + 0x4c]
mov ebx, dword [esi + 0x2ec]
movsd qword [esp + 0x190], xmm2
mov dword [esp + 0x2c], edx
test ebx, ebx
movsd qword [esp + 0x198], xmm1
mov dword [esp + 0x20], ebx
je 0x4d1f4a
cmp ebx, 6
ja 0x4d22be
imul edx, ebx, 0x7c
cmp dword [edx + esi - 0x7c], 0x80000001
je 0x4d22be
lea edx, [edx + esi - 0x7c]
jmp 0x4d1f50
mov edx, dword [esi + 0x2e8]
mov ebx, dword [esp + 8]
shl ecx, 8
mov dword [esp + 0x7c], 0x370001
mov dword [esp + 0x18], edi
shl ebx, 0x18
or ebx, ecx
or ebx, eax
mov eax, dword [esp + 0xc]
mov dword [esp + 8], ebx
cmp eax, dword [edx + 0x30]
jne 0x4d1f8b
push eax
push dword [edx + 0x2c]
push dword [esp + 0xc]
call fcn.004ef6f4
add esp, 0xc
test eax, eax
je 0x4d1fff
mov edx, dword [esp + 0x28]
and edx, 0xff000000
add edx, dword [esp + 0x7c]
test dword [esp], 0x7fffffff
je 0x4d1fb8
push dword [esp + 8]
push 0
push dword [0x6019d8]
mov esi, edx
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, esi
mov esi, dword [ebp + 8]
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x34]
test dl, 1
je 0x4d22aa
test edx, 0x100
jne 0x4d22b4
mov dword [esp + 0x28], edx
shr edx, 0x10
movzx ecx, al
add edi, 0xc
call fcn.004d41c0
cmp edi, ebx
mov dword [esp + 0x34], eax
jne 0x4d1dc7
jmp 0x4d227c
mov edi, dword [esp + 0x20]
test edi, edi
je 0x4d2018
imul eax, edi, 0x7c
cmp dword [eax + esi - 0x7c], 0x80000001
je 0x4d22be
mov eax, dword [esi + 0x2e8]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x6c], eax
jmp 0x4d2032
test edi, edi
mov edi, esi
je 0x4d20ad
test edi, edi
je 0x4d2050
mov eax, dword [ebp + 8]
lea esi, [edi - 1]
imul ebx, esi, 0x7c
cmp dword [eax + ebx], 0x80000001
je 0x4d22be
add ebx, eax
jmp 0x4d2056
mov ebx, dword [esp + 0x6c]
xor esi, esi
cmp ecx, dword [ebx + 0x48]
jne 0x4d202c
push ecx
push dword [ebx + 0x44]
push dword [esp + 0x18]
call fcn.004ef6f4
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
add esp, 0xc
test eax, eax
jne 0x4d202c
mov eax, dword [esp + 0xc]
cmp eax, dword [ebx + 0x40]
jne 0x4d202c
push dword [esp + 0xc]
push dword [ebx + 0x3c]
push dword [esp + 0xc]
call fcn.004ef6f4
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
add esp, 0xc
test edi, edi
je 0x4d20a5
test eax, eax
mov edi, esi
jne 0x4d2032
test eax, eax
je 0x4d1f8f
mov eax, dword [ebp + 0x18]
mov eax, dword [eax + 4]
test eax, eax
je 0x4d20f5
dec eax
mov ecx, dword [ebp + 0x18]
cmp dword [esp + 0x20], 6
mov dword [ecx + 4], eax
jb 0x4d2102
test dword [esp], 0x7fffffff
je 0x4d20e0
push dword [esp + 8]
push 0
push dword [0x6019d8]
call dword [sym.imp.kernel32.dll_HeapFree]
mov edx, dword [esp + 0x28]
and edx, 0xff000000
or edx, 0x300001
jmp 0x4d1fb8
mov dword [esp + 0x7c], 0x2f0101
jmp 0x4d1f8f
imul eax, dword [esp + 0x20], 0x7c
mov ecx, dword [ebp + 8]
lea ebx, [ecx + eax]
mov eax, dword [ecx + eax]
cmp eax, 0x80000002
jl 0x4d212c
test eax, eax
je 0x4d212c
push dword [ebx + 4]
push 0
push dword [0x6019d8]
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [esp]
movsd xmm0, qword [esp + 0x158]
movsd xmm1, qword [esp + 0x160]
movsd xmm2, qword [esp + 0x1a0]
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0xa8]
mov dword [ebx], eax
mov eax, dword [esp + 8]
mov dword [ebx + 4], eax
movsd qword [ebx + 8], xmm0
movsd xmm0, qword [esp + 0x168]
mov eax, dword [esp + 0x188]
movsd qword [ebx + 0x10], xmm1
movsd xmm1, qword [esp + 0x198]
movsd qword [ebx + 0x18], xmm0
movsd xmm0, qword [esp + 0x170]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 4]
movsd qword [ebx + 0x20], xmm0
movsd xmm0, qword [esp + 0x178]
movsd qword [ebx + 0x28], xmm0
movsd xmm0, qword [esp + 0x180]
movsd qword [ebx + 0x30], xmm0
mov dword [ebx + 0x3c], eax
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esp + 0x190]
mov dword [ebx + 0x40], eax
mov eax, dword [esp + 0x10]
mov dword [ebx + 0x44], eax
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x48], eax
movsd qword [ebx + 0x54], xmm1
movsd xmm1, qword [esp + 0x1a8]
movsd qword [ebx + 0x5c], xmm2
movsd xmm2, qword [esp + 0x1b0]
mov eax, dword [ebp + 8]
movsd qword [ebx + 0x4c], xmm0
movsd qword [ebx + 0x64], xmm1
movsd xmm1, qword [esp + 0x1b8]
movsd qword [ebx + 0x6c], xmm2
movsd qword [ebx + 0x74], xmm1
inc dword [eax + 0x2ec]
push dword [ebp + 0x18]
push dword [esp + 0x138]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push eax
call fcn.004d04a0
add esp, 0x14
cmp byte [esp + 0xa8], 1
jne 0x4d2248
mov ecx, dword [ebp + 8]
call fcn.004d4200
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov dword [esp + 0x54], eax
jmp 0x4d1fb8
mov eax, dword [esp + 0x70]
mov dword [eax + 4], ecx
mov byte [eax], 0
jmp 0x4d06a5
mov eax, dword [esp + 0x70]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x4d06a5
mov ebx, dword [esp + 0x34]
mov edx, 0x1000101
mov eax, ebx
add al, 0xd2
movzx ecx, al
shl ecx, 3
shr edx, cl
xor ecx, ecx
cmp al, 4
cmovb ecx, edx
mov edx, dword [esp + 0x70]
mov byte [edx + 1], cl
mov byte [edx + 2], bl
mov byte [edx], 1
jmp 0x4d06a5
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x54]
jmp 0x4d2263
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x54]
jmp 0x4d2272
ud2