Function at 0x4d07b0
Capabilities:
Encode data using base64
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x520
mov eax, dword [ebp + 8]
mov esi, dword [edx + 0x28]
mov dword [esp + 0x60], ecx
mov ebx, edx
call 0x4d07d0
pop edi
mov dword [esp + 0xd8], edi
mov dword [esp + 0x14], ebx
mov dword [esp + 0xe0], eax
movzx eax, byte [edx + 0x2c]
test al, al
sete cl
test esi, esi
sete dl
and dl, cl
je 0x4d081a
mov dword [esp + 0xf4], 0
mov dword [esp + 8], 0
xor esi, esi
mov edi, dword [ebx + 0x18]
test edi, edi
jne 0x4d117b
jmp 0x4d11be
test al, al
mov dword [esp + 0x6c], 0
mov byte [esp], dl
mov dword [esp + 0x70], 0
jne 0x4d09b5
mov dword [esp + 4], esi
call fcn.005332bc
test eax, eax
je 0x4d3667
lea esi, [esp + 0x12c]
lea ebx, [esp + 0x40]
lea edi, [esp + 0xb4]
mov dword [esp + 0xe8], eax
mov dword [esp + 0xec], eax
nop word cs:[eax + eax]
lea eax, [esp + 0xe8]
push eax
lea eax, [esp + 0x120]
push eax
call fcn.004cd5a0
add esp, 8
cmp byte [esp + 0x128], 2
je 0x4d09a1
movsd xmm1, qword [esi + 8]
movsd xmm2, qword [esp + 0x11c]
movsd xmm0, qword [esi]
movsd qword [esp + 0x28], xmm1
movsd xmm1, qword [esp + 0x124]
movsd qword [esp + 0x80], xmm2
movsd qword [esp + 0x20], xmm0
movsd qword [esp + 0x88], xmm1
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
add ecx, eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], eax
mov word [esp + 0xbc], 0
lea ecx, [esp + 0x74]
mov edx, edi
call fcn.004a03e0
movsd xmm1, qword [esp + 0x124]
movsd xmm0, qword [esp + 0x11c]
mov eax, dword [esp + 0x7c]
movsd xmm2, qword [esi]
movsd qword [esp + 0x38], xmm1
movsd xmm1, qword [esp + 0x74]
movsd qword [esp + 0x30], xmm0
mov dword [ebx + 8], eax
movsd qword [esp + 0x80], xmm2
movsd qword [ebx], xmm1
movsd xmm1, qword [esi + 8]
movsd qword [esp + 0x88], xmm1
lea edx, [esp + 0x68]
lea eax, [esp + 0x80]
mov ecx, edi
push eax
lea eax, [esp + 0x34]
push eax
call fcn.004943a0
add esp, 8
cmp byte [esp + 0xc0], 2
je 0x4d0870
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x4d0870
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push dword [esp + 0xc0]
call fcn.00403b20
add esp, 0xc
jmp 0x4d0870
push dword [esp + 0xe8]
call fcn.0053327c
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 4]
mov ecx, dword [ebx + 0x24]
mov eax, dword [ebx + 0x20]
xor edx, edx
test ecx, ecx
sete dl
cmove esi, ecx
add edx, edx
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd4], esi
nop dword [eax + eax]
lea ecx, [esp + 0xb4]
call fcn.0048da20
mov dword [esp + 4], edx
mov edi, eax
test eax, eax
je 0x4d0f63
mov eax, dword [esp + 4]
cmp byte [eax + 0xc], 2
jne 0x4d0ba0
mov esi, dword [esp + 0x6c]
test esi, esi
je 0x4d0a00
mov ebx, dword [esp + 0x68]
mov edx, ebx
lea ecx, [esp + 0x20]
push dword [edi + 0x18]
push dword [edi + 0x14]
push esi
call fcn.00499270
add esp, 0xc
cmp dword [esp + 0x20], 0
jne 0x4d0a00
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov byte [esp + 0x74], 0
test ecx, ecx
jne 0x4d0aa7
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], edx
lea edx, [esp + 0x30]
lea eax, [esp + 0x74]
lea ecx, [esp + 0x11c]
push eax
call fcn.00498750
add esp, 4
jmp 0x4d0e4e
movzx edx, word [eax + 0x1ea]
mov eax, dword [eax + edx*4 + 0x1ec]
dec ecx
jne 0x4d0aa0
movzx ecx, word [eax + 0x1ea]
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], eax
dec ecx
mov dword [esp + 0x38], ecx
lea edx, [esp + 0x30]
lea eax, [esp + 0x74]
lea ecx, [esp + 0x11c]
push eax
call fcn.00498750
add esp, 4
movsd xmm2, qword [esp + 0x134]
movsd xmm1, qword [esp + 0x12c]
mov eax, dword [esp + 0x144]
movsd xmm0, qword [esp + 0x13c]
mov edx, dword [esp + 0x14c]
movsd qword [esp + 0x98], xmm2
movsd qword [esp + 0x90], xmm1
movsd xmm2, qword [esp + 0x11c]
movsd xmm1, qword [esp + 0x124]
mov dword [esp + 0xa8], eax
movsd qword [esp + 0xa0], xmm0
mov eax, dword [esp + 0x150]
movsd qword [esp + 0x88], xmm1
movsd qword [esp + 0x80], xmm2
movzx ecx, word [edx + 0x1ea]
cmp eax, ecx
mov ecx, edx
jb 0x4d0d3e
nop dword [eax + eax]
mov ecx, dword [edx + 0xb0]
test ecx, ecx
je 0x4d0d3c
movzx eax, word [edx + 0x1e8]
mov edx, ecx
cmp ax, word [ecx + 0x1ea]
jae 0x4d0b70
jmp 0x4d0d3e
mov ebx, dword [edi + 8]
mov eax, dword [edi + 4]
test ebx, ebx
je 0x4d0bce
mov dword [esp + 8], eax
js 0x4d3571
push 1
push ebx
call fcn.00403b10
add esp, 8
mov esi, eax
test eax, eax
mov eax, dword [esp + 8]
jne 0x4d0bd3
jmp 0x4d3561
mov esi, 1
push ebx
push eax
push esi
call fcn.0053b960
add esp, 0xc
movzx eax, byte [edi + 0xc]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], ebx
mov byte [esp + 0x3c], al
mov ecx, dword [edi + 0x18]
mov edx, dword [edi + 0x14]
test ecx, ecx
mov dword [esp + 8], ecx
je 0x4d0c3b
xor ebx, ebx
cmp ecx, 0x40000000
setb al
jae 0x4d358a
mov bl, al
lea esi, [ecx + ecx]
add ebx, ebx
test esi, esi
js 0x4d358a
je 0x4d0c44
push ebx
push esi
mov edi, edx
call fcn.00403b10
mov edx, edi
add esp, 8
mov edi, eax
test edi, edi
jne 0x4d0c4e
jmp 0x4d357b
mov edi, 2
xor esi, esi
jmp 0x4d0c4e
mov edi, ebx
test edi, edi
je 0x4d357b
push esi
push edx
push edi
call fcn.0053b960
add esp, 0xc
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
mov eax, dword [esp + 8]
mov ecx, dword [esp + 4]
movsd qword [esp + 0x11c], xmm0
movsd qword [esp + 0x124], xmm1
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], edi
mov dword [esp + 0x134], eax
mov edi, dword [ecx + 8]
mov ebx, dword [ecx + 4]
test edi, edi
je 0x4d0cba
js 0x4d3557
push 1
push edi
call fcn.00403b10
add esp, 8
mov esi, eax
test eax, eax
jne 0x4d0cbf
jmp 0x4d3594
mov esi, 1
push edi
push ebx
push esi
call fcn.0053b960
add esp, 0xc
mov eax, dword [esp + 4]
movzx eax, byte [eax + 0xc]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edi
mov byte [esp + 0x3c], al
lea edx, [esp + 0x68]
lea eax, [esp + 0x30]
lea ecx, [esp + 0x80]
push eax
lea eax, [esp + 0x120]
push eax
call fcn.004943a0
add esp, 8
cmp byte [esp + 0x8c], 2
je 0x4d0a00
mov eax, dword [esp + 0x80]
test eax, eax
je 0x4d0a00
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push dword [esp + 0x8c]
call fcn.00403b20
add esp, 0xc
jmp 0x4d0a00
xor ecx, ecx
lea edx, [eax + eax*8]
lea edx, [edx + edx*2]
add edx, eax
shl eax, 4
mov edi, dword [ecx + edx + 0xcc]
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0x98]
movsd xmm0, qword [ecx + edx + 0xc4]
movsd qword [esp + 0x40], xmm0
movsd xmm0, qword [ecx + edx + 0xb4]
movsd xmm1, qword [ecx + edx + 0xbc]
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm0
mov dword [ecx + edx + 0xcc], edi
lea edi, [esp + 0x9c]
movsd xmm0, qword [esp + 0x90]
movsd qword [ecx + edx + 0xc4], xmm0
movsd xmm0, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
movsd qword [ecx + edx + 0xbc], xmm1
movsd qword [ecx + edx + 0xb4], xmm0
lea edx, [esp + 0x4c]
movsd xmm0, qword [ecx + eax]
movsd xmm1, qword [ecx + eax + 8]
movsd qword [edx + 8], xmm1
movsd qword [edx], xmm0
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
movsd qword [ecx + eax], xmm0
movsd qword [ecx + eax + 8], xmm1
movsd xmm2, qword [esp + 0x48]
movsd xmm1, qword [esp + 0x40]
mov eax, dword [esp + 0x58]
movsd xmm0, qword [esp + 0x50]
movsd qword [esp + 0x134], xmm2
movsd qword [esp + 0x12c], xmm1
movsd xmm2, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
mov dword [esp + 0x144], eax
movsd qword [esp + 0x13c], xmm0
movsd qword [esp + 0x124], xmm1
movsd qword [esp + 0x11c], xmm2
movsd xmm2, qword [esp + 0x134]
movsd xmm1, qword [esp + 0x12c]
mov eax, dword [esp + 0x144]
movsd xmm0, qword [esp + 0x13c]
dec dword [esp + 0x70]
cmp byte [esp + 0x74], 0
movsd qword [esp + 0x48], xmm2
movsd qword [esp + 0x40], xmm1
movsd xmm2, qword [esp + 0x11c]
movsd xmm1, qword [esp + 0x124]
mov dword [esp + 0x58], eax
movsd qword [esp + 0x50], xmm0
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm2
je 0x4d0ee0
test ebx, ebx
je 0x4d3616
mov eax, dword [esi + 0x1ec]
dec ebx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x68], ebx
mov dword [eax + 0xb0], 0
push 4
push 0x21c
push esi
call fcn.00403b20
add esp, 0xc
cmp byte [esp + 0x3c], 2
je 0x4d0a00
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x50]
mov edi, dword [esp + 0x40]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x4c]
movzx ebx, byte [esp + 0x58]
test eax, eax
mov dword [esp + 4], ecx
je 0x4d0f2e
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push dword [esp + 0x3c]
mov byte [esp + 0x14], bl
mov ebx, edx
call fcn.00403b20
mov edx, ebx
movzx ebx, byte [esp + 0x14]
add esp, 0xc
test edi, edi
je 0x4d0f40
add edi, edi
push 2
push edi
push edx
call fcn.00403b20
add esp, 0xc
cmp bl, 2
je 0x4d0a00
test esi, esi
je 0x4d0a00
mov eax, esi
not eax
shr eax, 0x1f
push eax
push esi
push dword [esp + 0xc]
jmp 0x4d0d2f
movsd xmm0, qword [esp + 0x68]
mov eax, dword [esp + 0x70]
cmp byte [esp], 0
mov ebx, dword [esp + 0x14]
movsd qword [esp + 0xf8], xmm0
mov dword [esp + 0x100], eax
mov dword [esp + 0xf4], 1
je 0x4d0fac
xor esi, esi
mov dword [esp + 8], 1
mov edi, dword [ebx + 0x18]
test edi, edi
jne 0x4d117b
jmp 0x4d11be
push 1
push 4
call fcn.00403b10
add esp, 8
test eax, eax
je 0x4d3648
mov ecx, eax
mov dword [esp + 0x30], 4
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 4
mov dword [eax], 0x48544150
mov byte [esp + 0x3c], 0
add ecx, 4
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x120], eax
mov word [esp + 0x124], 0
lea ecx, [esp + 0x80]
lea edx, [esp + 0x11c]
call fcn.004a03e0
movsd xmm1, qword [esp + 0x38]
movsd xmm0, qword [esp + 0x30]
mov eax, dword [esp + 0x88]
mov edx, dword [esp + 0xfc]
xor esi, esi
movsd qword [esp + 0x124], xmm1
movsd xmm1, qword [esp + 0x80]
movsd qword [esp + 0x11c], xmm0
mov dword [esp + 0x134], eax
mov dword [esp], eax
test edx, edx
movsd qword [esp + 0x12c], xmm1
mov eax, dword [esp + 0x130]
mov dword [esp + 8], eax
je 0x4d112d
mov eax, dword [esp + 0xf8]
mov dword [esp + 0xc], eax
movzx edi, word [edx + 0x1ea]
lea ecx, [edx + 0xb4]
mov ebx, 0xffffffff
mov dword [esp + 0x10], edx
lea eax, [edi + edi*8]
mov dword [esp + 0x18], edi
lea esi, [eax + eax*2]
add esi, edi
lea edi, [edx - 8]
nop dword [eax]
test esi, esi
je 0x4d10d7
lea eax, [ecx + 0x1c]
mov dword [esp + 4], eax
push 1
push dword [ecx + 0x18]
push dword [ecx + 0x14]
push dword [esp + 0xc]
push dword [esp + 0x18]
call fcn.005331cc
mov ecx, dword [esp + 4]
add esi, 0xffffffe4
add edi, 0x10
inc ebx
cmp eax, 3
je 0x4d10a0
cmp eax, 1
jne 0x4d10fa
jmp 0x4d10db
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
xor esi, esi
sub eax, 1
jb 0x4d1129
mov edx, dword [edx + ebx*4 + 0x1ec]
mov dword [esp + 0xc], eax
jmp 0x4d1077
cmp eax, 2
mov esi, 0
jne 0x4d35a4
cmp dword [esp + 0x10], 0
mov ebx, dword [esp + 0x14]
je 0x4d112d
mov esi, dword [edi - 4]
mov eax, dword [edi]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x11c]
test eax, eax
jne 0x4d1138
jmp 0x4d1150
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x11c]
test eax, eax
je 0x4d1150
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push dword [esp + 0x128]
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x12c]
test eax, eax
je 0x4d116c
add eax, eax
push 2
push eax
push dword [esp + 0x10]
call fcn.00403b20
add esp, 0xc
mov dword [esp + 8], 1
mov edi, dword [ebx + 0x18]
test edi, edi
je 0x4d11be
mov edx, dword [ebx + 0x14]
mov ecx, 0x4ce790
cmp edi, 4
jb 0x4d11ab
mov eax, dword [edx]
xor ecx, ecx
bswap eax
cmp eax, 0x5c5c3f5c
setb cl
cmp eax, 0x5c5c3f5d
mov eax, 0x4ce7b0
adc ecx, 0xffffffff
mov ecx, 0x4ce790
cmove ecx, eax
movzx eax, byte [edi + edx - 1]
mov dword [esp + 4], edx
push eax
call ecx
add esp, 4
test al, al
je 0x4d123d
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], 0xa4eac8
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x28]
mov dword [edx], eax
mov eax, dword [esp + 8]
mov dword [edx + 4], ecx
mov dword [edx + 8], 2
test eax, eax
je 0x4d12f4
mov ecx, dword [esp + 0xfc]
test ecx, ecx
je 0x4d12c8
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0x100]
mov dword [esp + 0x11c], 0
mov dword [esp + 0x120], edx
mov dword [esp + 0x124], ecx
mov dword [esp + 0x130], edx
mov dword [esp + 0x134], ecx
xor ecx, ecx
jmp 0x4d12da
xor eax, eax
cmp edi, 3
mov ecx, 0
mov dword [esp + 0xc], esi
jbe 0x4d1314
mov esi, dword [esp + 4]
movzx ecx, byte [edi + esi - 4]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x2e
jne 0x4d1312
movzx ecx, byte [esi + edi - 3]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
jne 0x4d1312
movzx ecx, byte [esi + edi - 2]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x78
jne 0x4d1312
movzx ecx, byte [esi + edi - 1]
mov edx, ecx
add dl, 0xbf
cmp dl, 0x1a
setb dl
shl dl, 5
or dl, cl
cmp dl, 0x65
sete cl
jmp 0x4d1314
xor eax, eax
mov ecx, 2
mov dword [esp + 0x11c], 2
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x13c], eax
lea ecx, [esp + 0x11c]
call fcn.004903c0
cmp dword [esp + 0xe0], 3
jb 0x4d130a
push dword [esp + 0xe4]
call fcn.005331c4
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
mov edx, dword [esp + 4]
mov dword [esp + 0x10], edi
add edx, edi
mov dword [esp], edx
nop word cs:[eax + eax]
nop dword [eax + eax]
cmp edi, eax
je 0x4d1365
mov edx, dword [esp + 4]
movzx edx, byte [edx + eax]
cmp edx, 0x2f
je 0x4d1347
inc eax
cmp edx, 0x5c
jne 0x4d1330
test cl, cl
je 0x4d142c
mov edx, dword [esp + 4]
lea ecx, [esp + 0x20]
push edi
call fcn.004cecd0
add esp, 4
jmp 0x4d1ce0
mov eax, dword [esp + 4]
xor esi, esi
jmp 0x4d137b
xor esi, esi
test cx, cx
je 0x4d1510
mov cx, 1
test si, si
jne 0x4d1370
cmp eax, dword [esp]
je 0x4d155c
movzx ebx, byte [eax]
test bl, bl
js 0x4d139d
mov edx, ebx
mov ebx, dword [esp + 0x14]
inc eax
jmp 0x4d13f8
movzx edi, byte [eax + 1]
mov edx, ebx
and edx, 0x1f
and edi, 0x3f
cmp bl, 0xdf
jbe 0x4d13e8
movzx esi, byte [eax + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp bl, 0xf0
jb 0x4d1401
movzx edi, byte [eax + 3]
and edx, 7
shl esi, 6
add eax, 4
shl edx, 0x12
and edi, 0x3f
or edi, esi
or edx, edi
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp edx, 0xffff
jbe 0x4d13f8
jmp 0x4d1419
shl edx, 6
mov ebx, dword [esp + 0x14]
add eax, 2
or edx, edi
mov edi, dword [esp + 0x10]
xor esi, esi
mov ecx, edx
jmp 0x4d1372
shl edx, 0xc
add eax, 3
or edx, esi
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
cmp edx, 0xffff
jbe 0x4d13f8
and edx, 0x3ff
or edx, 0xdc00
mov esi, edx
jmp 0x4d1372
test edi, edi
js 0x4d36f8
mov ebx, edi
not ebx
shr ebx, 0x1f
push ebx
push edi
call fcn.00403b10
add esp, 8
test eax, eax
je 0x4d3655
mov esi, eax
push edi
push dword [esp + 8]
push eax
call fcn.0053b960
add esp, 0xc
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], edi
mov byte [esp + 0x3c], 0
movsd xmm0, qword [esp + 0x38]
movsd xmm1, qword [esp + 0x30]
movsd qword [esp + 0x124], xmm0
movsd qword [esp + 0x11c], xmm1
lea esi, [esp + 0x11c]
push 4
push 0xa4ead4
push esi
call fcn.004cde40
add esp, 0xc
movsd xmm0, qword [esp + 0x11c]
movsd xmm1, qword [esp + 0x124]
movsd qword [esp + 0x38], xmm1
movsd qword [esp + 0x30], xmm0
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
mov edx, esi
lea ecx, [esp + 0x11c]
push edi
call fcn.004d3cf0
add esp, 4
mov ebx, dword [esp + 0x14]
cmp dword [esp + 0x120], 0
je 0x4d1525
mov eax, dword [esp + 0x124]
movsd xmm0, qword [esp + 0x11c]
mov dword [esp + 0x2c], eax
movsd qword [esp + 0x24], xmm0
mov dword [esp + 0x20], 0
jmp 0x4d1cc6
mov dword [esp + 0x28], 0xa4ea9c
mov dword [esp + 0x24], 2
jmp 0x4d11ce
mov dword [esp + 0x10], edi
push edi
push esi
call fcn.004beed0
add esp, 8
test eax, eax
je 0x4d15de
mov edi, edx
cmp edx, 2
jne 0x4d1585
movzx ecx, word [eax]
cmp ecx, 0x2e2e
jne 0x4d1585
mov dword [esp + 0x18], 2
xor ecx, ecx
jmp 0x4d1c93
mov esi, dword [esp + 0xc]
cmp edi, 7
ja 0x4d15c9
mov ecx, dword [esp + 4]
xor eax, eax
nop dword [eax + eax]
cmp byte [ecx + eax], 0x2e
je 0x4d15f2
inc eax
cmp edi, eax
jne 0x4d1570
mov dword [esp + 0x64], 0
jmp 0x4d15fa
xor ebx, ebx
mov ecx, eax
mov dword [esp + 0xc], esi
nop dword [eax]
cmp edi, ebx
je 0x4d15e7
cmp byte [ecx + edi - 1], 0x2e
lea esi, [ecx - 1]
mov edx, ebx
lea ebx, [ebx + 1]
mov ecx, esi
jne 0x4d1590
mov ecx, edi
sub ecx, ebx
mov dword [esp + 0x18], ecx
inc ecx
cmp edi, ecx
jb 0x4d3726
cmp edi, ebx
jne 0x4d1c87
xor ecx, ecx
mov dword [esp + 0x18], edi
jmp 0x4d1c8b
push edi
push dword [esp + 8]
push 0x2e
call fcn.00517970
add esp, 0xc
mov dword [esp + 0x64], eax
jmp 0x4d15fa
mov edi, dword [esp + 0x10]
jmp 0x4d1cb7
mov ecx, eax
xor eax, eax
mov edx, edi
jmp 0x4d1c8b
mov dword [esp + 0x64], 1
test esi, esi
je 0x4d175e
mov eax, dword [esp + 0x18]
add eax, esi
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], esi
mov word [esp + 0x38], 0
mov byte [esp + 0x3c], 1
lea eax, [esp + 0x30]
lea esi, [esp + 0x11c]
push eax
push esi
call fcn.004cd770
add esp, 8
jmp 0x4d164e
lea eax, [esp + 0x30]
push eax
push esi
call fcn.004cd770
add esp, 8
movzx eax, byte [esp + 0x128]
cmp al, 2
je 0x4d175e
mov edi, dword [esp + 0x124]
mov edx, dword [esp + 0x11c]
mov ecx, dword [esp + 0x120]
test edi, edi
jne 0x4d168f
test edx, edx
je 0x4d1640
mov eax, edx
not eax
shr eax, 0x1f
push eax
push edx
push ecx
call fcn.00403b20
add esp, 0xc
jmp 0x4d1640
lea esi, [esp + 0x129]
mov ah, byte [esi + 2]
movzx ebx, word [esi]
mov word [esi], bx
mov byte [esi + 2], ah
lea esi, [esp + 0x11c]
mov dword [esp + 0x11c], edx
mov dword [esp + 0x120], ecx
mov dword [esp + 0x124], edi
mov word [esp + 0xb4], bx
mov byte [esp + 0xb6], ah
mov byte [esp + 0x128], al
push dword [esp + 0x10]
push dword [esp + 8]
push esi
call fcn.004bde10
add esp, 0xc
cmp dword [esp + 0x64], 1
je 0x4d16fc
push 3
push 0xa4eaf8
push esi
call fcn.004be960
add esp, 0xc
mov edi, dword [esp + 0x120]
mov edx, edi
lea ecx, [esp + 0x80]
push dword [esp + 0x124]
call fcn.004d3cf0
add esp, 4
mov eax, dword [esp + 0x11c]
test eax, eax
je 0x4d1738
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push edi
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x84]
mov ebx, dword [esp + 0x14]
test eax, eax
jne 0x4d3058
lea eax, [esp + 0x30]
push eax
push esi
call fcn.004cd770
add esp, 8
jmp 0x4d164e
lea ecx, [esp + 0x80]
call fcn.004cd9c0
cmp byte [esp + 0x8c], 2
jne 0x4d17bf
cmp byte [esp + 0x80], 3
jne 0x4d18a1
mov esi, dword [esp + 0x84]
mov eax, dword [esi + 4]
mov eax, dword [eax]
push dword [esi]
call eax
add esp, 4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4d17ad
push dword [eax + 8]
push ecx
push dword [esi]
call fcn.00403b20
add esp, 0xc
push 4
push 0xc
push esi
call fcn.00403b20
add esp, 0xc
jmp 0x4d18a1
movsd xmm0, qword [esp + 0x80]
movsd xmm1, qword [esp + 0x88]
movsd qword [esp + 0x30], xmm0
movsd qword [esp + 0x38], xmm1
mov esi, dword [esp + 0x38]
push esi
push dword [esp + 0x38]
call fcn.004beda0
add esp, 8
test eax, eax
je 0x4d17fa
cmp esi, edx
jb 0x4d17fa
mov dword [esp + 0x38], edx
movsd xmm0, qword [esp + 0x30]
movsd xmm1, qword [esp + 0x38]
movsd qword [esp + 0x124], xmm1
movsd qword [esp + 0x11c], xmm0
lea edi, [esp + 0x11c]
push dword [esp + 0x10]
push dword [esp + 8]
push edi
call fcn.004bde10
add esp, 0xc
cmp dword [esp + 0x64], 1
je 0x4d1847
push 3
push 0xa4eaf8
push edi
call fcn.004be960
add esp, 0xc
mov esi, dword [esp + 0x120]
mov edx, esi
lea ecx, [esp + 0xb4]
push dword [esp + 0x124]
call fcn.004d3cf0
add esp, 4
mov eax, dword [esp + 0x11c]
test eax, eax
je 0x4d1883
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push esi
call fcn.00403b20
add esp, 0xc
mov esi, dword [esp + 0xb8]
test esi, esi
je 0x4d18a1
mov ecx, dword [esp + 0xb4]
mov edi, dword [esp + 0xbc]
jmp 0x4d1d5e
mov esi, 0x200
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 2
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x1c], 2
mov dword [esp + 0x18], 0
cmp esi, 0x201
jb 0x4d1902
jmp 0x4d1920
mov edi, dword [esp + 0x10]
jbe 0x4d19bf
cmp esi, 0x201
jae 0x4d1920
lea ebx, [esp + 0x11c]
mov dword [esp + 0x5c], 0x200
mov edi, esi
jmp 0x4d196b
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
sub esi, edi
sub eax, edi
cmp eax, esi
jae 0x4d1954
mov edx, edi
lea ecx, [esp + 0xb4]
push esi
call fcn.0049a5a0
add esp, 4
mov edi, dword [esp + 0xb4]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x1c], eax
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0xbc], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0xc], edi
push 0
call fcn.00533464
push edi
push ebx
call fcn.0053334c
mov esi, eax
test eax, eax
jne 0x4d198c
call fcn.00533304
test eax, eax
jne 0x4d1a57
cmp esi, edi
jne 0x4d18f0
call fcn.00533304
cmp eax, 0x7a
jne 0x4d362f
add edi, edi
mov eax, 0xffffffff
cmovb edi, eax
mov esi, edi
cmp esi, 0x201
jae 0x4d1920
jmp 0x4d1902
mov eax, dword [esp + 0x5c]
cmp esi, eax
ja 0x4d3715
lea eax, [esp + 0x30]
push esi
mov esi, eax
push ebx
push eax
call fcn.004bbc90
add esp, 0xc
push edi
push dword [esp + 8]
push esi
call fcn.004bde10
add esp, 0xc
cmp dword [esp + 0x64], 1
je 0x4d1a01
push 3
push 0xa4eaf8
push esi
call fcn.004be960
add esp, 0xc
mov edi, dword [esp + 0x34]
mov edx, edi
lea ecx, [esp + 0x80]
push dword [esp + 0x38]
call fcn.004d3cf0
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4d1a34
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push edi
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
xor ebx, ebx
mov dword [esp + 0x18], eax
mov al, 1
mov dword [esp + 0x5c], eax
jmp 0x4d1a6a
mov dword [esp + 0x5c], 0
mov bl, 1
call fcn.00533304
mov esi, eax
xor ecx, ecx
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4d1a87
add eax, eax
push 2
push eax
push dword [esp + 0x24]
mov edi, ecx
call fcn.00403b20
mov ecx, edi
add esp, 0xc
test esi, esi
sete al
or bl, al
cmp bl, 1
jne 0x4d1d4e
cmp byte [esp + 0x5c], 0
je 0x4d1aad
test esi, esi
je 0x4d1ae3
test ecx, ecx
je 0x4d1ae3
add ecx, ecx
push 2
push ecx
jmp 0x4d1ada
cmp cl, 3
jne 0x4d1ae3
mov eax, dword [esi + 4]
mov eax, dword [eax]
push dword [esi]
call eax
add esp, 4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4d1ad6
push dword [eax + 8]
push ecx
push dword [esi]
call fcn.00403b20
add esp, 0xc
push 4
push 0xc
push esi
call fcn.00403b20
add esp, 0xc
mov ebx, 0x200
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 2
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x1c], 2
mov dword [esp + 0x18], 0
cmp ebx, 0x201
jb 0x4d1b3d
jmp 0x4d1b50
mov edi, dword [esp + 0x10]
jbe 0x4d1bef
cmp ebx, 0x201
jae 0x4d1b50
lea esi, [esp + 0x11c]
mov dword [esp + 0x5c], 0x200
mov edi, ebx
jmp 0x4d1b9b
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x18]
sub ebx, edi
sub eax, edi
cmp eax, ebx
jae 0x4d1b84
mov edx, edi
lea ecx, [esp + 0xb4]
push ebx
call fcn.0049a5a0
add esp, 4
mov edi, dword [esp + 0xb4]
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xbc], edi
mov dword [esp + 0x18], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0xc], edi
push 0
call fcn.00533464
push edi
push esi
call fcn.0053336c
mov ebx, eax
test eax, eax
jne 0x4d1bbc
call fcn.00533304
test eax, eax
jne 0x4d1ced
cmp ebx, edi
jne 0x4d1b2b
call fcn.00533304
cmp eax, 0x7a
jne 0x4d36e2
add edi, edi
mov eax, 0xffffffff
cmovb edi, eax
mov ebx, edi
cmp ebx, 0x201
jae 0x4d1b50
jmp 0x4d1b3d
mov eax, dword [esp + 0x5c]
cmp ebx, eax
ja 0x4d3737
lea eax, [esp + 0x30]
push ebx
push esi
mov esi, eax
push eax
call fcn.004bbc90
add esp, 0xc
push edi
push dword [esp + 8]
push esi
call fcn.004bde10
add esp, 0xc
cmp dword [esp + 0x64], 1
je 0x4d1c31
push 3
push 0xa4eaf8
push esi
call fcn.004be960
add esp, 0xc
mov edi, dword [esp + 0x34]
mov edx, edi
lea ecx, [esp + 0x80]
push dword [esp + 0x38]
call fcn.004d3cf0
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4d1c64
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push edi
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
xor ebx, ebx
mov dword [esp + 0x18], eax
mov al, 1
mov dword [esp + 0x5c], eax
jmp 0x4d1d00
lea ecx, [esi + edi + 1]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
test eax, eax
cmovne ecx, eax
test ecx, ecx
je 0x4d1cb7
test eax, eax
mov eax, dword [esp + 0x18]
cmove eax, edx
add ecx, eax
sub ecx, esi
cmp edi, ecx
jb 0x4d1cb7
mov edi, ecx
mov dword [esp + 0x38], ecx
mov edx, esi
lea ecx, [esp + 0x20]
push edi
call fcn.004cecd0
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x4d1ce0
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push esi
call fcn.00403b20
add esp, 0xc
cmp dword [esp + 0x20], 0
jne 0x4d11ce
jmp 0x4d1d6a
mov dword [esp + 0x5c], 0
mov bl, 1
call fcn.00533304
mov esi, eax
xor ecx, ecx
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4d1d1d
add eax, eax
push 2
push eax
push dword [esp + 0x24]
mov edi, ecx
call fcn.00403b20
mov ecx, edi
add esp, 0xc
test esi, esi
sete al
or bl, al
cmp bl, 1
jne 0x4d1d4e
cmp byte [esp + 0x5c], 0
je 0x4d2691
test esi, esi
je 0x4d26c7
test ecx, ecx
je 0x4d26c7
add ecx, ecx
push 2
push ecx
jmp 0x4d26be
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
test esi, esi
je 0x4d2874
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], edi
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
cmp ecx, 5
mov dword [esp + 0x108], eax
mov dword [esp + 0x104], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x10c], ecx
jb 0x4d1da8
cmp word [eax + ecx*2 - 0xa], 0x2e
jne 0x4d1da8
cmp word [eax + ecx*2 - 2], 0
je 0x4d24c9
mov eax, ebx
mov ebx, dword [ebx + 0x50]
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 2
mov dword [esp + 0x38], 0
mov edi, dword [eax + 0x54]
movzx eax, byte [eax + 0x59]
mov byte [esp + 8], al
lea ecx, [esp + 0x30]
xor edx, edx
call fcn.00499d30
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 4]
mov word [eax + ecx*2], 0x22
mov eax, dword [esp]
inc ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], esi
mov word [esp + 0x124], 0
lea ecx, [esp + 0x30]
lea edx, [esp + 0x11c]
call fcn.004a05c0
mov esi, dword [esp + 0x38]
cmp esi, dword [esp + 0x30]
jne 0x4d1e36
lea ecx, [esp + 0x30]
mov edx, esi
call fcn.00499d30
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov word [eax + esi*2], 0x22
inc esi
test edi, edi
mov dword [esp + 0x38], esi
je 0x4d1eb7
movzx esi, byte [esp + 8]
shl edi, 2
lea edi, [edi + edi*4]
nop word cs:[eax + eax]
nop
mov edx, dword [esp + 0x38]
cmp edx, dword [esp + 0x30]
jne 0x4d1e77
lea ecx, [esp + 0x30]
call fcn.00499d30
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov word [eax + edx*2], 0x20
inc edx
mov dword [esp + 0x38], edx
lea edx, [esp + 0x30]
lea ecx, [esp + 0x11c]
push esi
push ebx
call fcn.004c88f0
add esp, 8
movzx eax, byte [esp + 0x11c]
cmp al, 4
jne 0x4d1fc5
add ebx, 0x14
add edi, 0xffffffec
jne 0x4d1e60
mov esi, dword [esp + 0x38]
movsd xmm0, qword [esp + 0x104]
mov eax, dword [esp + 0x10c]
mov ebx, dword [esp + 0x30]
mov edi, dword [esp + 0x34]
movsd qword [esp + 0x74], xmm0
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x7c]
movsd xmm0, qword [esp + 0x74]
cmp esi, ebx
mov dword [esp + 0x6c], edi
mov dword [esp + 0x68], ebx
mov dword [esp + 0x70], esi
mov dword [esp + 0xf0], eax
movsd qword [esp + 0xe8], xmm0
jne 0x4d1f1c
lea ecx, [esp + 0x68]
mov edx, esi
call fcn.00499d30
mov ebx, dword [esp + 0x14]
mov edi, dword [esp + 0x6c]
mov esi, dword [esp + 0x70]
jmp 0x4d1f20
mov ebx, dword [esp + 0x14]
mov word [edi + esi*2], 0
inc esi
mov eax, 0x400
mov ecx, 0x608
mov edx, 0
mov dword [esp + 8], 0
cmp byte [ebx + 0x58], 0
mov dword [esp + 0x70], esi
mov esi, 2
cmove ecx, eax
xor edi, edi
mov eax, 0
or ecx, dword [ebx + 0x48]
cmp dword [esp + 0xf4], 1
mov dword [esp + 0xd8], ecx
mov ecx, 2
jne 0x4d28f3
mov edi, dword [esp + 0x100]
mov esi, dword [esp + 0xf8]
mov ebx, dword [esp + 0xfc]
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], 0
test edi, edi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], edi
je 0x4d2046
mov dword [esp + 0x1c], 0
mov ecx, 2
jmp 0x4d2070
movzx ecx, byte [esp + 0x123]
movzx esi, word [esp + 0x121]
mov edx, dword [esp + 0x11d]
movzx edi, al
mov eax, dword [esp + 0x30]
shl ecx, 0x10
or esi, ecx
shld esi, edx, 8
shl edx, 8
or edi, edx
test eax, eax
je 0x4d2006
add eax, eax
push 2
push eax
push dword [esp + 0x3c]
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x60]
mov dword [eax], edi
mov dword [eax + 4], esi
mov dword [eax + 8], 2
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4d2032
add eax, eax
push 2
push eax
push dword [esp + 0x110]
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0xf4]
test eax, eax
jne 0x4d11f2
jmp 0x4d12f4
mov al, 1
mov dword [esp + 8], eax
lea ecx, [esp + 0x20]
xor edx, edx
call fcn.00499d30
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov ecx, eax
mov word [eax + edx*2], 0
inc edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], edx
xor eax, eax
test ebx, ebx
sete al
cmove edi, ebx
add eax, eax
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], esi
mov dword [esp + 0x124], ebx
mov dword [esp + 0x12c], eax
mov dword [esp + 0x130], esi
mov dword [esp + 0x134], ebx
mov dword [esp + 0x13c], edi
lea edi, [esp + 0x30]
lea ebx, [esp + 0x11c]
mov esi, ecx
mov ecx, edi
mov edx, ebx
call fcn.00496ab0
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4d2889
mov ecx, dword [esp + 0x38]
lea edx, [ecx + ecx*8]
lea edx, [edx + edx*2]
add edx, ecx
cmp byte [eax + edx + 0xc0], 2
je 0x4d2889
mov dword [esp + 8], esi
mov esi, dword [eax + edx + 0xb4]
shl ecx, 4
mov edi, dword [eax + edx + 0xbc]
mov ebx, dword [eax + edx + 0xc8]
movsd xmm0, qword [eax + ecx]
movsd xmm1, qword [eax + ecx + 8]
mov ecx, dword [eax + edx + 0xc4]
mov dword [esp + 0xc], esi
mov esi, dword [eax + edx + 0xb8]
mov eax, dword [eax + edx + 0xcc]
mov edx, edi
mov dword [esp], ebx
mov dword [esp + 0x10], ecx
xor ecx, ecx
movsd qword [esp + 0x88], xmm1
movsd qword [esp + 0x80], xmm0
mov dword [esp + 0x5c], eax
add edx, esi
mov eax, esi
mov dword [esp + 0x18], esi
mov dword [esp + 4], edx
jmp 0x4d216b
xor ecx, ecx
test si, si
je 0x4d2465
mov si, 1
test cx, cx
jne 0x4d2160
cmp eax, edx
je 0x4d2211
movzx ecx, byte [eax]
test cl, cl
js 0x4d2188
inc eax
mov edi, ecx
jmp 0x4d21de
movzx edx, byte [eax + 1]
mov edi, ecx
and edi, 0x1f
and edx, 0x3f
cmp cl, 0xdf
jbe 0x4d21d2
movzx ebx, byte [eax + 2]
shl edx, 6
and ebx, 0x3f
or ebx, edx
cmp cl, 0xf0
jb 0x4d21e7
movzx ecx, byte [eax + 3]
and edi, 7
shl ebx, 6
add eax, 4
shl edi, 0x12
and ecx, 0x3f
or ecx, ebx
or edi, ecx
mov edx, dword [esp + 4]
mov ebx, dword [esp]
cmp edi, 0xffff
jbe 0x4d21de
jmp 0x4d21fe
shl edi, 6
add eax, 2
or edi, edx
mov edx, dword [esp + 4]
xor ecx, ecx
mov esi, edi
jmp 0x4d2162
shl edi, 0xc
add eax, 3
or edi, ebx
mov edx, dword [esp + 4]
mov ebx, dword [esp]
cmp edi, 0xffff
jbe 0x4d21de
and edi, 0x3ff
or edi, 0xdc00
mov ecx, edi
jmp 0x4d2162
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x4d222e
mov eax, ecx
not eax
shr eax, 0x1f
push eax
push ecx
push dword [esp + 0x20]
call fcn.00403b20
add esp, 0xc
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], ebx
mov edi, dword [esp + 0x1c]
mov esi, dword [esp + 0x5c]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x20]
lea eax, [ebx + esi*2]
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], eax
sub ecx, edi
cmp ecx, esi
mov ecx, dword [esp + 8]
jae 0x4d2276
mov edx, edi
lea ecx, [esp + 0x20]
push esi
call fcn.0049a5a0
add esp, 4
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x5c]
mov dword [esp + 8], ecx
lea eax, [esi + esi]
lea ecx, [ecx + edi*2]
push eax
push ebx
push ecx
call fcn.0053b960
add esp, 0xc
mov ecx, dword [esp + 0x10]
add edi, esi
mov eax, ebx
mov ebx, edi
mov dword [esp + 0x28], edi
test ecx, ecx
je 0x4d22ab
add ecx, ecx
push 2
push ecx
push eax
call fcn.00403b20
add esp, 0xc
cmp ebx, dword [esp + 0x20]
mov edx, ebx
jne 0x4d22c6
lea ecx, [esp + 0x20]
call fcn.00499d30
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
jmp 0x4d22ca
mov eax, dword [esp + 8]
mov word [eax + edx*2], 0x3d
inc edx
mov ebx, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x80]
movzx edx, byte [esp + 0x8c]
lea edi, [ebx + ecx]
mov dword [esp + 0xc], ecx
xor ecx, ecx
mov dword [esp + 8], eax
mov byte [esp + 0x10], dl
mov dword [esp], ebx
mov dword [esp + 4], edi
jmp 0x4d2317
xor ecx, ecx
test ax, ax
je 0x4d2621
mov ax, 1
test cx, cx
jne 0x4d230c
cmp ebx, edi
je 0x4d23a9
movzx ecx, byte [ebx]
test cl, cl
js 0x4d2334
inc ebx
mov esi, ecx
jmp 0x4d238d
movzx edx, byte [ebx + 1]
mov esi, ecx
and esi, 0x1f
and edx, 0x3f
cmp cl, 0xdf
jbe 0x4d236f
movzx edi, byte [ebx + 2]
shl edx, 6
and edi, 0x3f
or edi, edx
cmp cl, 0xf0
jb 0x4d2379
movzx ecx, byte [ebx + 3]
and esi, 7
shl edi, 6
add ebx, 4
shl esi, 0x12
and ecx, 0x3f
or ecx, edi
or esi, ecx
jmp 0x4d2381
shl esi, 6
add ebx, 2
or esi, edx
jmp 0x4d238d
shl esi, 0xc
add ebx, 3
or esi, edi
mov edi, dword [esp + 4]
cmp esi, 0xffff
ja 0x4d2396
xor ecx, ecx
mov eax, esi
jmp 0x4d230e
and esi, 0x3ff
or esi, 0xdc00
mov ecx, esi
jmp 0x4d230e
movzx ebx, byte [esp + 0x10]
cmp bl, 2
je 0x4d3547
lea ecx, [esp + 0x8d]
lea edx, [esp + 0x3d]
mov esi, dword [esp + 8]
mov dword [esp + 0xb4], edi
movzx eax, word [ecx]
mov word [edx], ax
movzx eax, byte [ecx + 2]
mov ecx, dword [esp + 0xc]
mov byte [edx + 2], al
mov eax, dword [esp]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
mov dword [esp + 0xb8], eax
mov byte [esp + 0x3c], bl
mov word [esp + 0xbc], 0
lea ecx, [esp + 0x20]
lea edx, [esp + 0xb4]
lea edi, [esp + 0x30]
call fcn.004a05c0
lea ebx, [esp + 0x11c]
test esi, esi
je 0x4d2436
mov eax, esi
not eax
shr eax, 0x1f
push eax
push esi
push dword [esp + 8]
call fcn.00403b20
add esp, 0xc
mov edx, dword [esp + 0x28]
cmp edx, dword [esp + 0x20]
jne 0x4d244d
lea ecx, [esp + 0x20]
call fcn.00499d30
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x24]
mov word [esi + edx*2], 0
inc edx
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], edx
jmp 0x4d20ba
mov ecx, dword [esp + 0xc]
test ecx, ecx
je 0x4d2482
mov eax, ecx
not eax
shr eax, 0x1f
push eax
push ecx
push dword [esp + 0x20]
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x80]
test eax, eax
je 0x4d24a5
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push dword [esp + 0x8c]
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x10]
mov esi, 2
mov dword [esp + 4], 0xa4ea9c
test eax, eax
je 0x4d264b
add eax, eax
push 2
push eax
push ebx
jmp 0x4d2643
movzx edx, word [eax + ecx*2 - 8]
lea esi, [edx - 0x42]
cmp esi, 0x21
ja 0x4d1da8
mov edi, dword [esp + 0xd8]
add edi, dword [esi*4 + 0x4d3b44]
jmp edi
mov ecx, dword [esp + 8]
mov esi, 2
mov dword [esp + 4], 0xa4ea9c
test ecx, ecx
je 0x4d264b
mov eax, ecx
not eax
shr eax, 0x1f
push eax
push ecx
push dword [esp + 8]
call fcn.00403b20
add esp, 0xc
mov dword [esp + 8], 0
lea ecx, [esp + 0x11c]
call fcn.004903c0
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4d2678
add eax, eax
push 2
push eax
push dword [esp + 0x2c]
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x60]
mov ecx, dword [esp + 4]
mov dword [eax + 4], ecx
mov dword [eax], esi
mov dword [eax + 8], 2
jmp 0x4d3017
cmp cl, 3
jne 0x4d26c7
mov eax, dword [esi + 4]
mov eax, dword [eax]
push dword [esi]
call eax
add esp, 4
mov eax, dword [esi + 4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4d26ba
push dword [eax + 8]
push ecx
push dword [esi]
call fcn.00403b20
add esp, 0xc
push 4
push 0xc
push esi
call fcn.00403b20
add esp, 0xc
push 4
push 0xa4d42c
lea eax, [esp + 0xbc]
push eax
call fcn.004adb10
add esp, 0xc
cmp byte [esp + 0xc0], 2
je 0x4d2874
movsd xmm0, qword [esp + 0xb4]
movsd xmm1, qword [esp + 0xbc]
lea ebx, [esp + 0x30]
lea esi, [esp + 0x11c]
movsd qword [esp + 0x80], xmm0
movsd qword [esp + 0x88], xmm1
mov ecx, dword [esp + 0x84]
mov eax, dword [esp + 0x88]
add eax, ecx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x34], ecx
mov word [esp + 0x38], 0
mov byte [esp + 0x3c], 1
push ebx
push esi
call fcn.004cd770
add esp, 8
jmp 0x4d2759
push ebx
push esi
call fcn.004cd770
add esp, 8
movzx edx, byte [esp + 0x128]
cmp dl, 2
je 0x4d2854
mov edi, dword [esp + 0x124]
mov ecx, dword [esp + 0x11c]
mov eax, dword [esp + 0x120]
test edi, edi
jne 0x4d279b
test ecx, ecx
je 0x4d274f
mov edx, ecx
not edx
shr edx, 0x1f
push edx
push ecx
push eax
call fcn.00403b20
add esp, 0xc
jmp 0x4d274f
lea esi, [esp + 0x129]
mov dh, byte [esi + 2]
movzx ebx, word [esi]
mov word [esi], bx
mov byte [esi + 2], dh
lea esi, [esp + 0x11c]
mov dword [esp + 0x11c], ecx
mov dword [esp + 0x120], eax
mov dword [esp + 0x124], edi
mov word [esp + 0x68], bx
mov byte [esp + 0x6a], dh
mov byte [esp + 0x128], dl
push dword [esp + 0x10]
push dword [esp + 8]
push esi
call fcn.004bde10
add esp, 0xc
cmp dword [esp + 0x64], 1
je 0x4d2802
push 3
push 0xa4eaf8
push esi
call fcn.004be960
add esp, 0xc
mov edi, dword [esp + 0x120]
mov edx, edi
lea ecx, [esp + 0x74]
push dword [esp + 0x124]
call fcn.004d3cf0
add esp, 4
mov eax, dword [esp + 0x11c]
mov ebx, dword [esp + 0x14]
test eax, eax
je 0x4d283f
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push edi
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x78]
test eax, eax
jne 0x4d34ca
lea ebx, [esp + 0x30]
jmp 0x4d2743
mov eax, dword [esp + 0x80]
test eax, eax
je 0x4d2874
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push dword [esp + 0x14]
call fcn.00403b20
add esp, 0xc
mov dword [esp + 0x24], 2
mov dword [esp + 0x28], 0xa4eaec
jmp 0x4d11ce
mov dword [esp + 8], 0
lea ecx, [esp + 0x11c]
call fcn.004903c0
mov edx, dword [esp + 0x1c]
cmp edx, dword [esp + 0x20]
jne 0x4d28c0
mov dword [esp + 8], 0
lea ecx, [esp + 0x20]
call fcn.00499d30
mov esi, dword [esp + 0x24]
mov edx, dword [esp + 0x28]
mov word [esi + edx*2], 0
mov ebx, dword [esp + 0x14]
mov dword [esp + 8], esi
mov esi, 2
mov edi, 0
mov eax, dword [esp + 0x20]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x4d306d
mov ecx, eax
mov eax, dword [esp + 4]
inc edx
cmp byte [ebx + 0xc], 2
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], ecx
mov dword [esp], ecx
mov dword [esp + 0x7c], edx
mov edx, 0
mov ecx, 0
mov dword [esp + 4], eax
je 0x4d2a44
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
xor ebx, ebx
add eax, edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
jmp 0x4d293b
xor ebx, ebx
test si, si
je 0x4d29cd
mov si, 1
test bx, bx
jne 0x4d2930
cmp edx, eax
je 0x4d29ea
movzx ebx, byte [edx]
test bl, bl
js 0x4d2958
inc edx
mov edi, ebx
jmp 0x4d29b1
movzx ecx, byte [edx + 1]
mov edi, ebx
and edi, 0x1f
and ecx, 0x3f
cmp bl, 0xdf
jbe 0x4d2993
movzx eax, byte [edx + 2]
shl ecx, 6
and eax, 0x3f
or eax, ecx
cmp bl, 0xf0
jb 0x4d299d
movzx ecx, byte [edx + 3]
and edi, 7
shl eax, 6
add edx, 4
shl edi, 0x12
and ecx, 0x3f
or ecx, eax
or edi, ecx
jmp 0x4d29a5
shl edi, 6
add edx, 2
or edi, ecx
jmp 0x4d29b1
shl edi, 0xc
add edx, 3
or edi, eax
mov eax, dword [esp + 0x10]
cmp edi, 0xffff
ja 0x4d29ba
xor ebx, ebx
mov esi, edi
jmp 0x4d2932
and edi, 0x3ff
or edi, 0xdc00
mov ebx, edi
jmp 0x4d2932
mov eax, dword [esp + 0x60]
mov dword [eax + 4], 0xa4ea9c
mov dword [eax], 2
mov dword [eax + 8], 2
jmp 0x4d2ffe
mov esi, dword [esp + 0xc]
mov dword [esp + 0x11c], eax
mov dword [esp + 0x120], esi
mov word [esp + 0x124], 0
lea ecx, [esp + 0x30]
lea edx, [esp + 0x11c]
call fcn.004a03e0
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x14]
cmp edx, ecx
jne 0x4d2a37
lea ecx, [esp + 0x30]
call fcn.00499d30
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
mov word [edi + edx*2], 0
inc edx
mov esi, edi
xorps xmm0, xmm0
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], esi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], edx
movaps xmmword [esp + 0x80], xmm0
push 0xad1100
call fcn.005331a4
mov eax, dword [0xad10d8]
test eax, 0x7fffffff
je 0x4d2a7e
call fcn.004c5e10
xor al, 1
jmp 0x4d2a80
xor eax, eax
movzx ecx, byte [0xad1104]
mov dword [esp + 0xc], esi
mov dword [esp + 0x110], edi
test cl, cl
mov byte [esp + 0x5c], cl
je 0x4d2aac
mov ecx, 1
mov dword [esp + 0xb8], 0xad1100
jmp 0x4d2ab9
mov dword [esp + 0xb8], 0xad1100
xor ecx, ecx
mov esi, dword [ebx + 0x30]
mov byte [esp + 0xbc], al
mov dword [esp + 0x18], eax
mov dword [esp + 0xb4], ecx
xor ecx, ecx
lea eax, [ebx + 0x30]
mov edi, dword [esp + 0xe0]
mov edx, 1
mov dword [esp + 0x30], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x114], 1
cmp esi, 5
mov dword [esp + 0x1c], edi
cmove eax, ecx
cmp byte [ebp + 0xc], 0
lea ecx, [esp + 0xe4]
cmovne edx, edi
lea edi, [esp + 0x118]
cmovne edi, ecx
add eax, 4
cmp esi, 5
mov ecx, 0
cmovne edx, esi
mov esi, dword [ebx + 0x38]
cmove eax, edi
mov edi, ebx
add ebx, 0x38
cmp esi, 5
cmove ebx, ecx
mov ecx, dword [edi + 0x40]
add edi, 0x40
mov dword [esp + 0x64], ecx
cmp ecx, 5
mov ecx, 0
cmove edi, ecx
mov dword [esp + 0x14], edi
lea edi, [esp + 0x30]
lea ecx, [esp + 0x11c]
push edi
push 0xfffffffffffffff6
push dword [eax]
call fcn.004d3dd0
add esp, 0xc
movzx eax, byte [esp + 0x11c]
cmp eax, 4
jne 0x4d2e2b
mov ecx, dword [esp + 0x120]
mov edi, dword [esp + 0x1c]
lea eax, [esp + 0x38]
add ebx, 4
cmp esi, 5
mov dword [esp + 0xdc], ecx
lea ecx, [esp + 0xe4]
cmove esi, edi
cmove ebx, ecx
mov edx, esi
lea ecx, [esp + 0x11c]
push eax
push 0xfffffffffffffff5
push dword [ebx]
call fcn.004d3dd0
add esp, 0xc
movzx eax, byte [esp + 0x11c]
mov esi, dword [esp + 0x14]
cmp eax, 4
jne 0x4d2e65
mov edx, dword [esp + 0x64]
add esi, 4
lea ecx, [esp + 0xe4]
lea eax, [esp + 0x40]
cmp edx, 5
cmove esi, ecx
mov ecx, dword [esp + 0x120]
cmove edx, edi
mov dword [esp + 0x14], ecx
lea edi, [esp + 0x11c]
mov ecx, edi
push eax
push 0xfffffffffffffff4
push dword [esi]
call fcn.004d3dd0
add esp, 0xc
movzx eax, byte [esp + 0x11c]
mov ebx, dword [esp + 0xdc]
cmp eax, 4
jne 0x4d2ea6
mov esi, dword [esp + 0x120]
mov edx, edi
mov dword [esp + 0x124], 0
mov dword [esp + 0x120], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x128], 0
mov dword [esp + 0x134], 0
mov dword [esp + 0x130], 0
mov dword [esp + 0x13c], 0
mov dword [esp + 0x138], 0
mov dword [esp + 0x144], 0
mov dword [esp + 0x140], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
mov dword [esp + 0x154], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x11c], 0x44
test esi, esi
jne 0x4d2d00
cmp dword [esp + 0x14], 0
jne 0x4d2d00
test ebx, ebx
je 0x4d2d24
mov eax, dword [esp + 0x14]
mov dword [esp + 0x148], 0x100
mov dword [esp + 0x154], ebx
mov dword [esp + 0x158], eax
mov dword [esp + 0x15c], esi
mov edi, dword [esp + 0x6c]
mov ecx, dword [esp + 0xec]
lea eax, [esp + 0x80]
push eax
push edx
push dword [esp + 0x118]
push dword [esp + 0x14]
push dword [esp + 0xe8]
push 1
push 0
push 0
push edi
mov dword [esp + 0x2c], ecx
push ecx
call fcn.00533214
test eax, eax
je 0x4d2f38
mov eax, dword [esp + 0x60]
movsd xmm1, qword [esp + 0x38]
movsd xmm0, qword [esp + 0x40]
movsd xmm2, qword [esp + 0x30]
movsd qword [eax + 0x10], xmm1
movsd xmm1, qword [esp + 0x80]
movsd qword [eax + 0x18], xmm0
movsd qword [eax + 8], xmm2
movsd qword [eax], xmm1
push esi
call fcn.005331c4
push dword [esp + 0x14]
call fcn.005331c4
push ebx
call fcn.005331c4
lea ecx, [esp + 0xb4]
call fcn.004907f0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x4d2dd0
add ecx, ecx
push 2
push ecx
push eax
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 4]
test eax, eax
je 0x4d2de9
add eax, eax
push 2
push eax
push dword [esp + 8]
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4d2dff
add eax, eax
push 2
push eax
push edi
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x4d2e1b
add eax, eax
push 2
push eax
push dword [esp + 0x10]
call fcn.00403b20
add esp, 0xc
cmp dword [esp + 0x1c], 3
jae 0x4d12fe
jmp 0x4d130a
movzx ecx, byte [esp + 0x11f]
movzx edx, word [esp + 0x11d]
mov esi, dword [esp + 0x60]
shl ecx, 0x10
or edx, ecx
mov ecx, dword [esp + 0x120]
shl edx, 8
or edx, eax
mov dword [esi], edx
mov dword [esi + 4], ecx
mov dword [esi + 8], 2
mov esi, dword [esp + 0xc]
jmp 0x4d2f6a
movzx ecx, byte [esp + 0x11f]
movzx edx, word [esp + 0x11d]
mov esi, dword [esp + 0x60]
mov ebx, dword [esp + 0xdc]
shl ecx, 0x10
or edx, ecx
mov ecx, dword [esp + 0x120]
shl edx, 8
or edx, eax
mov dword [esi], edx
mov dword [esi + 4], ecx
mov dword [esi + 8], 2
mov esi, dword [esp + 0xc]
jmp 0x4d2f64
movzx ecx, byte [esp + 0x11f]
movzx edx, word [esp + 0x11d]
mov esi, dword [esp + 0x60]
shl ecx, 0x10
or edx, ecx
mov ecx, dword [esp + 0x120]
shl edx, 8
or edx, eax
mov dword [esi], edx
mov dword [esi + 4], ecx
mov dword [esi + 8], 2
jmp 0x4d2f57
call fcn.00533304
mov ecx, dword [esp + 0x60]
mov dword [ecx + 4], eax
mov dword [ecx], 0
mov dword [ecx + 8], 2
push esi
call fcn.005331c4
mov esi, dword [esp + 0xc]
push dword [esp + 0x14]
call fcn.005331c4
push ebx
call fcn.005331c4
cmp dword [esp + 0x30], 0
je 0x4d2f7a
push dword [esp + 0x34]
call fcn.005331c4
cmp dword [esp + 0x38], 0
je 0x4d2f8a
push dword [esp + 0x3c]
call fcn.005331c4
cmp dword [esp + 0x40], 0
je 0x4d2f9a
push dword [esp + 0x44]
call fcn.005331c4
cmp byte [esp + 0x5c], 0
je 0x4d2fbb
cmp byte [esp + 0x18], 0
jne 0x4d2fde
mov eax, dword [0xad10d8]
test eax, 0x7fffffff
je 0x4d2fde
call fcn.004c5e10
jmp 0x4d2fd3
cmp byte [esp + 0x18], 0
jne 0x4d2fde
mov eax, dword [0xad10d8]
test eax, 0x7fffffff
je 0x4d2fde
call fcn.004c5e10
test al, al
jne 0x4d2fde
mov byte [0xad1104], 1
push 0xad1100
call fcn.00533404
mov eax, dword [esp + 0x10]
test eax, eax
je 0x4d2ffe
add eax, eax
push 2
push eax
push esi
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 4]
test eax, eax
je 0x4d3017
add eax, eax
push 2
push eax
push dword [esp + 8]
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0x68]
test eax, eax
je 0x4d3030
add eax, eax
push 2
push eax
push dword [esp + 0x74]
call fcn.00403b20
add esp, 0xc
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x4d12f4
add eax, eax
push 2
push eax
push dword [esp + 0xf4]
call fcn.00403b20
add esp, 0xc
jmp 0x4d12f4
mov ecx, dword [esp + 0x80]
mov edi, dword [esp + 0x88]
mov esi, eax
jmp 0x4d1d5e
mov esi, dword [esp + 8]
jmp 0x4d2678
mov esi, eax
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x7c]
test eax, eax
je 0x4d1d5e
mov dword [esp + 8], ecx
mov ecx, eax
not ecx
shr ecx, 0x1f
push ecx
push eax
push dword [esp + 0x14]
call fcn.00403b20
mov ecx, dword [esp + 0x14]
add esp, 0xc
jmp 0x4d1d5e
mov eax, dword [esp]
mov esi, dword [esp + 8]
mov dword [esp + 4], eax
jmp 0x4d264b
call fcn.00506b80
jmp 0x4d376d
push 1
push ebx
call fcn.00506bc0
add esp, 8
jmp 0x4d376d
call fcn.00506b80
jmp 0x4d376d
push ebx
push esi
call fcn.00506bc0
add esp, 8
jmp 0x4d376d
call fcn.00506b80
jmp 0x4d376d
push 1
push edi
call fcn.00506bc0
add esp, 8
jmp 0x4d376d
call fcn.00533304
mov dword [esp + 0x84], eax
lea eax, [esp + 0x80]
mov dword [esp + 0x38], 0xa4ea3c
mov dword [esp + 0x3c], 1
mov dword [esp + 0x80], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xb4]
mov dword [esp + 0xb8], 0x4b2000
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 1
push 0xa4ea6c
lea eax, [esp + 0x34]
push eax
call fcn.005123d0
add esp, 8
jmp 0x4d376d
push 0xa4afbc
push 0x21
push 0xa4af98
call fcn.00512480
add esp, 0xc
jmp 0x4d376d
push 0xa4f14c
push 0x28
push 0xa4b0e8
call fcn.00512480
add esp, 0xc
jmp 0x4d376d
mov ebx, 1
mov dword [esp + 0x10], 4
push ebx
push dword [esp + 0x14]
call fcn.00506bc0
add esp, 8
jmp 0x4d376d
call fcn.00533304
mov dword [esp + 0x34], eax
lea esi, [esp + 0x30]
lea eax, [esp + 0x80]
mov dword [esp + 0x124], 0xa4e890
mov dword [esp + 0x128], 1
mov dword [esp + 0x11c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x80], esi
mov dword [esp + 0x12c], eax
mov dword [esp + 0x84], 0x4b2000
mov dword [esp + 0x130], 1
lea eax, [esp + 0x11c]
push 0xa4e898
push eax
call fcn.005123d0
add esp, 8
jmp 0x4d376d
push 0xa4f14c
push 0x28
push 0xa4b0e8
call fcn.00512480
add esp, 0xc
jmp 0x4d376d
call fcn.00506b80
jmp 0x4d376d
push 0xa4f15c
push eax
push esi
call fcn.00518320
add esp, 0xc
jmp 0x4d376d
push 0xa4a7bc
push edi
push ecx
call fcn.005182a0
add esp, 0xc
jmp 0x4d376d
push 0xa4f15c
push eax
push ebx
call fcn.00518320
add esp, 0xc
jmp 0x4d376d
ud2