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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b3a65
mov eax, dword fs:[0]
push eax
sub esp, 0x3b8
mov eax, dword [0x5fa040]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov dword [ebp - 0x304], edi
mov dword [ebp - 0x354], ecx
mov eax, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
mov dword [ebp - 0x34c], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x308], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x2cc], esi
mov dword [ebp - 0x2e8], eax
mov dword [ebp - 0x348], 0
mov dword [ebp - 4], 0
push 4
mov dword [ebp - 0x344], 0
call fcn.0058813f
mov dword [ebp - 0x344], eax
mov dword [ebp - 0x340], 0
mov dword [ebp - 0x33c], 3
mov byte [eax], 0
mov byte [ebp - 4], 1
push 4
mov dword [ebp - 0x338], 0
call fcn.0058813f
mov dword [ebp - 0x338], eax
xorps xmm0, xmm0
mov dword [ebp - 0x334], 0
add esp, 8
mov dword [ebp - 0x330], 3
mov byte [eax], 0
movlpd qword [ebp - 0x328], xmm0
mov byte [ebp - 0x320], 0
mov dword [ebp - 0x31c], 1
mov dword [ebp - 0x318], 0
mov dword [ebp - 4], 2
test edi, edi
je 0x50eb9a
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov ecx, dword [ebp - 0x348]
test ecx, ecx
je 0x50ebaa
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov al, byte [esi + 8]
xorps xmm0, xmm0
mov ecx, dword [esi + 0x14]
mov byte [ebp - 0x320], al
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x348], edi
movlpd qword [ebp - 0x328], xmm0
mov dword [ebp - 0x31c], eax
mov dword [ebp - 0x318], ecx
mov dword [ebp - 0x2dc], 0
lea ecx, [ebp - 0x2dc]
mov byte [ebp - 4], 3
mov eax, dword [edi]
push ecx
push 0x5c1ea4
push edi
call dword [eax]
mov dword [ebp - 0x2f4], 0
lea ecx, [ebp - 0x2f4]
mov byte [ebp - 4], 4
mov eax, dword [edi]
push ecx
push 0x5c1e94
push edi
call dword [eax]
mov dword [ebp - 0x310], 0
lea ecx, [ebp - 0x310]
mov byte [ebp - 4], 5
mov eax, dword [edi]
push ecx
push 0x5c1fe4
push edi
call dword [eax]
mov eax, dword [ebp - 0x2dc]
test eax, eax
je 0x50ec5a
mov ecx, dword [eax]
lea edx, [ebp - 0x328]
push edx
push 1
push 0
push 0
push eax
call dword [ecx + 0x10]
mov esi, eax
test esi, esi
jne 0x5102b9
mov eax, dword [ebp - 0x2f4]
test eax, eax
je 0x50ec7c
mov ecx, dword [eax]
push 0
push 0
push 0
push 0
push eax
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
jne 0x5102b9
mov esi, dword [ebp - 0x308]
xor edx, edx
xorps xmm0, xmm0
mov dword [ebp - 0x2f8], edx
movlpd qword [ebp - 0x2e4], xmm0
mov edi, dword [ebp - 0x2e4]
cmp dword [esi + 4], edx
jbe 0x50ed27
mov eax, dword [esi]
mov esi, dword [ebp - 0x2e0]
mov dword [ebp - 0x2d8], eax
mov ecx, dword [eax]
cmp byte [ecx + 0x14], 0
je 0x50eccd
mov eax, dword [ecx + 8]
and eax, dword [ecx + 0xc]
cmp eax, 0xffffffff
je 0x50ed2d
add edi, dword [ecx + 8]
adc esi, dword [ecx + 0xc]
jmp 0x50ed04
mov eax, dword [ebp - 0x34c]
mov ecx, dword [ecx]
mov eax, dword [eax]
mov ecx, dword [eax + ecx*4]
mov edx, dword [ecx]
mov eax, dword [ecx + 4]
add edx, 0x1ff
adc eax, 0
and edx, 0xfffffe00
add edx, dword [ecx + 0xc0]
adc eax, dword [ecx + 0xc4]
add edi, edx
mov edx, dword [ebp - 0x2f8]
adc esi, eax
mov ecx, dword [ebp - 0x308]
inc edx
mov eax, dword [ebp - 0x2d8]
add eax, 4
mov dword [ebp - 0x2f8], edx
mov dword [ebp - 0x2d8], eax
cmp edx, dword [ecx + 4]
jb 0x50ecb2
jmp 0x50ed2d
mov esi, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x308]
cmp edx, dword [eax + 4]
jne 0x50ed50
mov ecx, dword [ebp - 0x2e8]
push esi
push edi
push ecx
mov eax, dword [ecx]
call dword [eax + 0xc]
mov esi, eax
test esi, esi
jne 0x5102b9
push 0x30
call fcn.00587dd8
mov edi, eax
add esp, 4
lea esi, [edi + 0x10]
mov dword [ebp - 0x30c], edi
mov dword [ebp - 0x39c], edi
mov dword [edi + 4], 0
mov dword [edi], vtable.CLocalProgress.0
mov word [edi + 8], 0x101
mov dword [edi + 0xc], 0
mov dword [esi], 0
push edi
mov dword [edi + 0x18], 0
mov dword [edi + 0x1c], 0
mov dword [edi + 0x20], 0
mov dword [edi + 0x24], 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
call dword [0x5d2100]
mov byte [ebp - 4], 0x12
mov ecx, dword [esi]
test ecx, ecx
je 0x50edd2
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esi], 0
mov ecx, dword [ebp - 0x2e8]
test ecx, ecx
je 0x50ede2
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x50edef
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x2e8]
mov dword [edi + 0xc], ecx
push esi
mov byte [ebp - 4], 0x13
mov eax, dword [ecx]
push 0x5c1f34
push ecx
call dword [eax]
mov byte [ebp - 4], 0x12
push 0x28
mov byte [edi + 0xa], 1
call fcn.00587dd8
add esp, 4
mov dword [ebp - 0x2ec], eax
mov dword [ebp - 0x3a0], eax
mov dword [eax + 0x14], 0
mov dword [eax], vtable.NCompress::CCopyCoder.1.0
mov dword [eax + 4], vtable.NCompress::CCopyCoder.3.0
mov dword [eax + 8], vtable.NCompress::CCopyCoder.2.0
mov dword [eax + 0xc], vtable.NCompress::CCopyCoder.4.0
mov dword [eax + 0x10], vtable.NCompress::CCopyCoder.0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
push eax
mov dword [eax + 0x20], 0
mov dword [eax + 0x24], 0
call dword [0x5ca750]
push 0x28
mov byte [ebp - 4], 0x14
call fcn.00587dd8
mov esi, eax
add esp, 4
mov dword [ebp - 0x2f8], esi
mov dword [ebp - 0x3a4], esi
mov dword [esi + 4], 0
mov dword [esi], vtable.CLimitedSequentialInStream.0
push esi
mov dword [esi + 8], 0
call dword [0x5cb568]
mov ecx, dword [ebp - 0x354]
mov byte [ebp - 4], 0x15
test ecx, ecx
je 0x50eebc
mov eax, dword [ecx]
push ecx
call dword [eax + 4]
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x50eec9
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, dword [ebp - 0x354]
xorps xmm0, xmm0
mov dword [esi + 8], eax
push 0
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
push 0
mov dword [edi + 0x20], 0
push edi
movlpd qword [ebp - 0x2e4], xmm0
mov dword [ebp - 0x2d8], 0
mov dword [edi + 0x24], 0
call fcn.00558180
mov esi, eax
test esi, esi
jne 0x510280
mov eax, dword [ebp - 0x2e0]
mov dword [ebp - 0x2fc], eax
mov eax, dword [ebp - 0x2e4]
mov dword [ebp - 0x300], eax
mov eax, dword [ebp - 0x308]
mov esi, 0x5c4300
mov ecx, dword [ebp - 0x2d8]
cmp ecx, dword [eax + 4]
je 0x5101a4
mov eax, dword [eax]
mov edi, dword [eax + ecx*4]
lea ecx, [ebp - 0x2b8]
mov dword [ebp - 0x2c8], edi
call fcn.00505c00
mov byte [ebp - 4], 0x2b
cmp byte [edi + 0x15], 0
je 0x50f1de
mov eax, dword [ebp - 0x2cc]
mov ecx, 0x5c42f8
mov al, byte [eax + 8]
test al, al
cmove ecx, esi
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x258], eax
lea eax, [edi + 0x2c]
mov dword [ebp - 0x254], ecx
lea ecx, [ebp - 0x288]
cmp eax, ecx
je 0x50effe
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c4], eax
cmp eax, dword [ebp - 0x280]
jbe 0x50efda
inc eax
push eax
call fcn.0058813f
push dword [ebp - 0x288]
mov esi, eax
call fcn.00588148
mov eax, dword [ebp - 0x2c4]
add esp, 8
mov dword [ebp - 0x288], esi
mov dword [ebp - 0x280], eax
jmp 0x50efe0
mov esi, dword [ebp - 0x288]
mov dword [ebp - 0x284], eax
mov ecx, dword [edi + 0x2c]
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [esi], al
lea esi, [esi + 1]
test al, al
jne 0x50eff0
lea eax, [edi + 0x38]
lea ecx, [ebp - 0x270]
cmp eax, ecx
je 0x50f064
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c4], eax
cmp eax, dword [ebp - 0x268]
jbe 0x50f047
inc eax
push eax
call fcn.0058813f
push dword [ebp - 0x270]
mov esi, eax
call fcn.00588148
mov eax, dword [ebp - 0x2c4]
add esp, 8
mov dword [ebp - 0x270], esi
mov dword [ebp - 0x268], eax
jmp 0x50f04d
mov esi, dword [ebp - 0x270]
mov dword [ebp - 0x26c], eax
mov ecx, dword [edi + 0x38]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [esi], al
lea esi, [esi + 1]
test al, al
jne 0x50f056
lea eax, [edi + 0x44]
lea ecx, [ebp - 0x264]
cmp eax, ecx
je 0x50f0ce
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c4], eax
cmp eax, dword [ebp - 0x25c]
jbe 0x50f0ad
inc eax
push eax
call fcn.0058813f
push dword [ebp - 0x264]
mov esi, eax
call fcn.00588148
mov eax, dword [ebp - 0x2c4]
add esp, 8
mov dword [ebp - 0x264], esi
mov dword [ebp - 0x25c], eax
jmp 0x50f0b3
mov esi, dword [ebp - 0x264]
mov dword [ebp - 0x260], eax
mov ecx, dword [edi + 0x44]
nop dword [eax]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [esi], al
lea esi, [esi + 1]
test al, al
jne 0x50f0c0
mov eax, dword [edi + 0x1c]
mov dword [ebp - 0x298], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x294], eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x290], eax
mov eax, dword [edi + 0x28]
mov dword [ebp - 0x28c], eax
mov al, byte [edi + 0x17]
mov byte [ebp - 0x29f], al
mov al, byte [edi + 0x18]
mov byte [ebp - 0x29e], al
cmp byte [edi + 0x16], 0
je 0x50f11e
xorps xmm0, xmm0
mov byte [ebp - 0x2a0], 0x35
movlpd qword [ebp - 0x2b8], xmm0
jmp 0x50f16a
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x2b8], eax
mov al, 0x30
mov dword [ebp - 0x2b4], ecx
mov ecx, dword [edi + 0x10]
and ecx, 0xf000
cmp ecx, 0x2000
jne 0x50f147
mov al, 0x33
jmp 0x50f164
cmp ecx, 0x6000
jne 0x50f153
mov al, 0x34
jmp 0x50f164
cmp ecx, 0x1000
movzx eax, al
mov ecx, 0x36
cmove eax, ecx
mov byte [ebp - 0x2a0], al
mov eax, dword [edi + 0x10]
and eax, 0xffff0fff
mov dword [ebp - 0x29c], eax
movups xmm0, xmmword [edi + 0x50]
movups xmmword [ebp - 0x250], xmm0
movups xmm0, xmmword [edi + 0x60]
movups xmmword [ebp - 0x240], xmm0
movups xmm0, xmmword [edi + 0x70]
movups xmmword [ebp - 0x230], xmm0
cmp dword [edi + 0x50], 0xffffffff
je 0x50f1b6
mov eax, dword [edi + 0x58]
mov ecx, dword [edi + 0x5c]
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], ecx
jmp 0x50f322
xorps xmm0, xmm0
movlpd qword [ebp - 0x2e4], xmm0
mov ecx, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x2e4]
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], ecx
jmp 0x50f322
mov ecx, dword [edi]
mov eax, dword [ebp - 0x34c]
mov eax, dword [eax]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2b4], ecx
mov eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2ac], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], ecx
lea ecx, [ebp - 0x288]
mov al, byte [esi + 0x18]
mov byte [ebp - 0x2a0], al
mov al, byte [esi + 0x19]
mov byte [ebp - 0x29f], al
mov al, byte [esi + 0x1a]
mov byte [ebp - 0x29e], al
mov eax, dword [esi + 0x1c]
mov dword [ebp - 0x29c], eax
mov eax, dword [esi + 0x20]
mov dword [ebp - 0x298], eax
mov eax, dword [esi + 0x24]
mov dword [ebp - 0x294], eax
mov eax, dword [esi + 0x28]
mov dword [ebp - 0x290], eax
mov eax, dword [esi + 0x2c]
mov dword [ebp - 0x28c], eax
lea eax, [esi + 0x30]
push eax
call fcn.0046cb10
lea eax, [esi + 0x3c]
push eax
lea ecx, [ebp - 0x27c]
call fcn.0046cb10
lea eax, [esi + 0x48]
push eax
lea ecx, [ebp - 0x270]
call fcn.0046cb10
lea eax, [esi + 0x54]
push eax
lea ecx, [ebp - 0x264]
call fcn.0046cb10
mov al, byte [esi + 0x60]
lea ecx, [ebp - 0x220]
mov byte [ebp - 0x258], al
mov al, byte [esi + 0x61]
mov byte [ebp - 0x257], al
mov al, byte [esi + 0x62]
mov byte [ebp - 0x256], al
mov al, byte [esi + 0x63]
mov byte [ebp - 0x255], al
mov al, byte [esi + 0x64]
mov byte [ebp - 0x254], al
mov al, byte [esi + 0x65]
mov byte [ebp - 0x253], al
mov al, byte [esi + 0x66]
mov byte [ebp - 0x252], al
mov al, byte [esi + 0x67]
mov byte [ebp - 0x251], al
lea eax, [esi + 0x98]
movups xmm0, xmmword [esi + 0x68]
push eax
movups xmmword [ebp - 0x250], xmm0
movups xmm0, xmmword [esi + 0x78]
movups xmmword [ebp - 0x240], xmm0
movups xmm0, xmmword [esi + 0x88]
movups xmmword [ebp - 0x230], xmm0
call fcn.005103b0
push 4
call fcn.0058813f
xor edx, edx
mov dword [ebp - 0x360], eax
add esp, 4
mov dword [ebp - 0x35c], edx
mov dword [ebp - 0x358], 3
mov byte [eax], dl
mov byte [ebp - 4], 0x2c
cmp byte [edi + 0x14], dl
jne 0x50f358
cmp byte [edi + 0x15], dl
je 0x50f3ee
mov eax, dword [ebp - 0x2cc]
mov edx, dword [edi + 4]
push ecx
mov ecx, dword [ebp - 0x2e8]
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x360]
push eax
push 0x36
call fcn.00508fa0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x51015a
mov edx, dword [ebp - 0x35c]
test edx, edx
je 0x50f3ee
mov byte [ebp - 0x2a0], 0x32
cmp edx, dword [ebp - 0x274]
jbe 0x50f3ce
lea eax, [edx + 1]
push eax
call fcn.0058813f
push dword [ebp - 0x27c]
mov esi, eax
call fcn.00588148
mov edx, dword [ebp - 0x35c]
add esp, 8
mov dword [ebp - 0x27c], esi
mov dword [ebp - 0x274], edx
jmp 0x50f3d4
mov esi, dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x360]
mov dword [ebp - 0x278], edx
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [esi], al
lea esi, [esi + 1]
test al, al
jne 0x50f3e0
cmp byte [edi + 0x14], 0
je 0x50fd91
mov dword [ebp - 0x21c], 0
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2b4], ecx
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x2c0], 0
mov byte [ebp - 4], 0x34
mov byte [ebp - 0x2d1], 1
test edx, edx
je 0x50f457
xorps xmm0, xmm0
movlpd qword [ebp - 0x2b8], xmm0
movlpd qword [ebp - 0x2b0], xmm0
jmp 0x50f956
mov ecx, dword [ebp - 0x2e8]
lea edx, [ebp - 0x2c0]
push edx
push dword [edi + 4]
mov eax, dword [ecx]
push ecx
call dword [eax + 0x1c]
mov esi, eax
cmp esi, 1
jne 0x50f47b
xor dl, dl
jmp 0x50f95c
test esi, esi
jne 0x51013c
mov eax, dword [ebp - 0x2c0]
test eax, eax
jne 0x50f4a5
xorps xmm0, xmm0
movlpd qword [ebp - 0x2b8], xmm0
movlpd qword [ebp - 0x2b0], xmm0
jmp 0x50f8a3
mov dword [ebp - 0x2bc], 0
lea edx, [ebp - 0x2bc]
mov byte [ebp - 4], 0x3d
mov ecx, dword [eax]
push edx
push 0x5c1e64
push eax
call dword [ecx]
mov ecx, dword [ebp - 0x2bc]
test ecx, ecx
je 0x50f77a
mov eax, dword [ebp - 0x2cc]
cmp byte [eax + 9], 0
je 0x50f508
lea eax, [ebp - 0x250]
mov edx, 0xc
push eax
call fcn.0050e800
mov esi, eax
add esp, 4
test esi, esi
jne 0x5100ea
mov ecx, dword [ebp - 0x2bc]
mov eax, dword [ebp - 0x2cc]
cmp byte [eax + 0xb], 0
je 0x50f538
lea eax, [ebp - 0x240]
mov edx, 0xb
push eax
call fcn.0050e800
mov esi, eax
add esp, 4
test esi, esi
jne 0x5100ea
mov ecx, dword [ebp - 0x2bc]
mov eax, dword [ebp - 0x2cc]
cmp byte [eax + 0xd], 0
je 0x50f568
lea eax, [ebp - 0x230]
mov edx, 0xa
push eax
call fcn.0050e800
mov esi, eax
add esp, 4
test esi, esi
jne 0x5100ea
mov ecx, dword [ebp - 0x2bc]
mov eax, dword [ebp - 0x2cc]
cmp byte [eax + 8], 0
je 0x50f600
lea eax, [ebp - 0x2d2]
mov byte [ebp - 0x2d2], 0
push eax
lea eax, [ebp - 0x2c8]
mov dword [ebp - 0x2c8], 0
push eax
mov edx, 0x65
call fcn.0050ea10
mov esi, eax
add esp, 8
test esi, esi
jne 0x5100ea
cmp byte [ebp - 0x2d2], al
je 0x50f5f4
mov eax, dword [ebp - 0x2c8]
lea edx, [esi + 0x66]
mov ecx, dword [ebp - 0x2bc]
mov dword [ebp - 0x290], eax
lea eax, [ebp - 0x29e]
push eax
lea eax, [ebp - 0x28c]
mov word [ebp - 0x29f], 1
push eax
mov dword [ebp - 0x28c], esi
call fcn.0050ea10
mov esi, eax
add esp, 8
test esi, esi
jne 0x5100ea
mov ecx, dword [ebp - 0x2bc]
mov eax, dword [ebp - 0x2cc]
push dword [eax + 4]
mov edx, 0x19
push dword [eax]
lea eax, [ebp - 0x298]
push eax
lea eax, [ebp - 0x270]
push eax
push 0x63
call fcn.0050e870
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x5100ea
mov eax, dword [ebp - 0x2cc]
lea edx, [esi + 0x1a]
mov ecx, dword [ebp - 0x2bc]
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x264]
push eax
push 0x64
call fcn.0050e870
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x5100ea
mov dword [ebp - 0x390], eax
lea edx, [ebp - 0x390]
mov dword [ebp - 0x388], eax
mov eax, dword [ebp - 0x2bc]
push edx
push 0x35
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
jne 0x5100df
mov ax, word [ebp - 0x390]
test ax, ax
jne 0x50f6ac
cmp byte [edi + 0x16], 0
mov eax, 0x81ff
mov ecx, 0x41ff
cmovne eax, ecx
jmp 0x50f6bc
cmp ax, 0x13
jne 0x5100da
mov eax, dword [ebp - 0x388]
mov ecx, eax
mov dl, 0x30
and ecx, 0xf000
cmp ecx, 0x2000
jne 0x50f6d2
mov dl, 0x33
jmp 0x50f6ef
cmp ecx, 0x6000
jne 0x50f6de
mov dl, 0x34
jmp 0x50f6ef
cmp ecx, 0x1000
movzx edx, dl
mov ecx, 0x36
cmove edx, ecx
and eax, 0xffff0fff
mov byte [ebp - 0x2a0], dl
lea ecx, [ebp - 0x390]
mov dword [ebp - 0x29c], eax
call fcn.004719d0
xor eax, eax
lea edx, [ebp - 0x380]
mov dword [ebp - 0x380], eax
mov dword [ebp - 0x378], eax
mov eax, dword [ebp - 0x2bc]
push edx
push 7
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
jne 0x5100d2
cmp word [ebp - 0x380], 0x15
jne 0x5100cd
mov ecx, dword [ebp - 0x378]
mov eax, dword [ebp - 0x374]
mov dword [ebp - 0x2b8], ecx
mov dword [ebp - 0x2b0], ecx
lea ecx, [ebp - 0x380]
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x2ac], eax
call fcn.004719d0
jmp 0x50f88b
mov dword [ebp - 0x2d0], 0
mov byte [ebp - 4], 0xa1
lea edx, [ebp - 0x2d0]
mov eax, dword [ebp - 0x2c0]
push edx
push 0x5c1e54
push eax
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 0x2d0]
test eax, eax
je 0x50f87d
mov ecx, dword [eax]
lea esi, [ebp - 0x3ac]
xor eax, eax
lea edx, [ebp - 0x3b4]
mov edi, dword [ecx + 0xc]
mov ecx, dword [ebp - 0x2cc]
cmp byte [ecx + 9], al
cmove esi, eax
cmp byte [ecx + 0xb], al
lea ecx, [ebp - 0x3bc]
cmove edx, eax
mov eax, dword [ebp - 0x2cc]
cmp byte [eax + 0xd], 0
mov eax, 0
push eax
push esi
cmove ecx, eax
lea eax, [ebp - 0x398]
push edx
push ecx
push eax
mov eax, dword [ebp - 0x2d0]
push eax
call edi
test eax, eax
jne 0x50f871
mov esi, dword [ebp - 0x2cc]
mov ecx, dword [ebp - 0x398]
mov eax, dword [ebp - 0x394]
mov dword [ebp - 0x2b8], ecx
cmp byte [esi + 9], 0
mov dword [ebp - 0x2b4], eax
mov dword [ebp - 0x2b0], ecx
mov dword [ebp - 0x2ac], eax
je 0x50f843
lea edx, [ebp - 0x250]
lea ecx, [ebp - 0x3ac]
call fcn.0050e660
cmp byte [esi + 0xb], 0
je 0x50f85a
lea edx, [ebp - 0x240]
lea ecx, [ebp - 0x3b4]
call fcn.0050e660
cmp byte [esi + 0xd], 0
je 0x50f871
lea edx, [ebp - 0x230]
lea ecx, [ebp - 0x3bc]
call fcn.0050e660
mov edi, dword [ebp - 0x2c8]
mov eax, dword [ebp - 0x2d0]
mov byte [ebp - 4], 0xa2
test eax, eax
je 0x50f88b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0xa3
mov eax, dword [ebp - 0x2bc]
test eax, eax
je 0x50f89f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0x34
push 4
call fcn.0058813f
mov dword [ebp - 0x370], eax
mov dword [ebp - 0x36c], 0
mov dword [ebp - 0x368], 3
mov byte [eax], 0
mov eax, dword [ebp - 0x2cc]
mov ecx, dword [ebp - 0x2e8]
mov byte [ebp - 4], 0xa4
mov edx, dword [edi + 4]
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x370]
push eax
push 0x5a
call fcn.00508fa0
mov esi, eax
add esp, 0x14
test esi, esi
jne 0x51012e
cmp dword [ebp - 0x36c], eax
je 0x50f944
lea eax, [ebp - 0x370]
mov byte [ebp - 0x2a0], 0x31
push eax
lea ecx, [ebp - 0x27c]
call fcn.0046cb10
mov eax, dword [ebp - 0x2c0]
xorps xmm0, xmm0
movlpd qword [ebp - 0x2b8], xmm0
movlpd qword [ebp - 0x2b0], xmm0
test eax, eax
je 0x50f944
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x2c0], esi
mov byte [ebp - 4], 0x34
push dword [ebp - 0x370]
call fcn.00588148
add esp, 4
mov dl, byte [ebp - 0x2d1]
cmp byte [edi + 0x15], 0
je 0x50f99c
cmp dword [ebp - 0x250], 0xffffffff
je 0x50f979
mov eax, dword [ebp - 0x248]
mov ecx, dword [ebp - 0x244]
jmp 0x50f990
xorps xmm0, xmm0
movlpd qword [ebp - 0x2e4], xmm0
mov ecx, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x2e4]
mov dword [ebp - 0x2a8], eax
mov dword [ebp - 0x2a4], ecx
test dl, dl
je 0x50fd18
cmp dword [ebp - 0x2c0], 0
je 0x50f9c2
mov eax, dword [ebp - 0x2b0]
and eax, dword [ebp - 0x2ac]
cmp eax, 0xffffffff
je 0x510100
cmp dword [ebp - 0x2dc], 0
mov edx, dword [ebp - 0x328]
mov esi, dword [ebp - 0x324]
mov dword [ebp - 0x2c8], edx
mov dword [ebp - 0x2bc], esi
je 0x50fa03
mov eax, dword [ebp - 0x2f4]
test eax, eax
je 0x50fa03
mov ecx, dword [eax]
push 0xffffffffffffffff
push 0xffffffffffffffff
push esi
push edx
push eax
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
jne 0x51013c
lea eax, [ebp - 0x2b8]
push eax
lea ecx, [ebp - 0x348]
call fcn.0050d920
mov esi, eax
test esi, esi
jne 0x51013c
cmp dword [ebp - 0x2c0], eax
je 0x50fd18
mov dword [ebp - 0x364], eax
cmp eax, 2
jae 0x510127
push dword [ebp - 0x30c]
mov ecx, dword [ebp - 0x2ec]
mov eax, dword [ebp - 0x328]
push 0
push 0
push dword [ebp - 0x304]
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x324]
push dword [ebp - 0x2c0]
mov dword [ebp - 0x2e0], eax
mov eax, dword [ecx]
push ecx
call dword [eax + 0xc]
mov esi, eax
test esi, esi
jne 0x51013c
mov edx, dword [ebp - 0x2ec]
mov eax, dword [ebp - 0x328]
add eax, dword [edx + 0x20]
mov ecx, dword [edx + 0x24]
adc ecx, dword [ebp - 0x324]
mov dword [ebp - 0x2d0], ecx
mov dword [ebp - 0x324], ecx
mov dword [ebp - 0x328], eax
mov ecx, dword [edx + 0x20]
mov dword [ebp - 0x2c4], eax
and ecx, 0x1ff
je 0x50fb10
mov esi, 0x200
lea eax, [ebp - 0x210]
sub esi, ecx
push esi
push 0
push eax
call fcn.0058ad30
xor ecx, ecx
lea edx, [ebp - 0x210]
mov eax, esi
add eax, dword [ebp - 0x2c4]
push esi
adc ecx, dword [ebp - 0x2d0]
mov dword [ebp - 0x324], ecx
mov ecx, dword [ebp - 0x348]
mov dword [ebp - 0x328], eax
call fcn.00558f70
mov esi, eax
add esp, 0x10
test esi, esi
jne 0x51013c
mov edx, dword [ebp - 0x2ec]
mov eax, dword [edx + 0x20]
cmp eax, dword [ebp - 0x2b8]
jne 0x50fb2a
mov eax, dword [edx + 0x24]
cmp eax, dword [ebp - 0x2b4]
je 0x50fd18
mov eax, dword [ebp - 0x310]
test eax, eax
je 0x50fb4b
mov ecx, dword [eax]
push 9
push dword [edi + 4]
push 3
push eax
call dword [ecx + 0x10]
mov esi, eax
test esi, esi
jne 0x51013c
mov eax, dword [ebp - 0x2dc]
test eax, eax
je 0x510127
mov ecx, dword [ebp - 0x328]
mov edx, dword [ebp - 0x2c8]
mov dword [ebp - 0x2c4], ecx
mov ecx, dword [ebp - 0x324]
sub edx, dword [ebp - 0x2c4]
mov dword [ebp - 0x2d0], ecx
mov ecx, dword [eax]
push 0
push 1
mov esi, dword [ecx + 0x10]
mov ecx, dword [ebp - 0x2bc]
sbb ecx, dword [ebp - 0x2d0]
push ecx
push edx
push eax
call esi
mov esi, eax
test esi, esi
jne 0x51013c
mov ecx, dword [ebp - 0x2ec]
mov eax, dword [ebp - 0x2c8]
mov dword [ebp - 0x328], eax
mov eax, dword [ebp - 0x2bc]
mov dword [ebp - 0x324], eax
mov eax, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x2b8], eax
lea eax, [ebp - 0x2b8]
mov dword [ebp - 0x2b4], ecx
lea ecx, [ebp - 0x348]
push eax
call fcn.0050d920
mov esi, eax
test esi, esi
jne 0x51013c
mov eax, dword [ebp - 0x350]
cmp dword [ebp - 0x328], eax
jne 0x50fc0d
mov ecx, dword [ebp - 0x2e0]
cmp dword [ebp - 0x324], ecx
je 0x50fcae
mov dword [ebp - 0x2f0], 0
mov dword [ebp - 4], 0x105
lea edx, [ebp - 0x2f0]
mov eax, dword [ebp - 0x2c0]
push edx
push 0x5c1dd4
push eax
mov ecx, dword [eax]
call dword [ecx]
mov eax, dword [ebp - 0x2f0]
test eax, eax
je 0x51010f
mov ecx, eax
call fcn.00558d60
mov esi, eax
test esi, esi
jne 0x510107
mov eax, dword [ebp - 0x2dc]
push dword [ebp - 0x324]
push dword [ebp - 0x328]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov esi, eax
test esi, esi
jne 0x510107
mov eax, dword [ebp - 0x2b8]
or eax, dword [ebp - 0x2b4]
je 0x50fcfa
mov dword [ebp - 4], 0x122
mov eax, dword [ebp - 0x2f0]
test eax, eax
je 0x50fc9b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x364]
mov dword [ebp - 4], 0x34
inc eax
jmp 0x50fa2b
mov edi, dword [ebp - 0x2c4]
mov edx, dword [ebp - 0x2d0]
sub edi, eax
mov eax, edi
sbb edx, ecx
or eax, edx
mov dword [ebp - 0x2d0], edx
je 0x50fd18
mov eax, dword [ebp - 0x2dc]
push 0
push 1
push edx
mov ecx, dword [eax]
push edi
push eax
call dword [ecx + 0x10]
mov esi, eax
test esi, esi
jne 0x51013c
add dword [ebp - 0x328], edi
mov eax, dword [ebp - 0x2d0]
adc dword [ebp - 0x324], eax
jmp 0x50fd18
mov dword [ebp - 4], 0x121
mov eax, dword [ebp - 0x2f0]
test eax, eax
je 0x50fd11
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0x34
mov eax, dword [ebp - 0x300]
add eax, dword [ebp - 0x2b8]
mov edi, dword [ebp - 0x2fc]
adc edi, dword [ebp - 0x2b4]
mov dword [ebp - 0x300], eax
mov eax, dword [ebp - 0x2c0]
mov dword [ebp - 0x2fc], edi
test eax, eax
je 0x50fd56
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 0x2c0], 0
mov ecx, dword [ebp - 0x2e8]
push 0
push ecx
mov eax, dword [ecx]
call dword [eax + 0x20]
mov esi, eax
test esi, esi
jne 0x51013c
mov dword [ebp - 4], 0x12b
mov eax, dword [ebp - 0x2c0]
test eax, eax
je 0x50fd85
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0x2c
jmp 0x51004d
mov eax, dword [ebp - 0x310]
test eax, eax
je 0x50fdb1
mov ecx, dword [eax]
push 3
push dword [edi]
push 1
push eax
call dword [ecx + 0x10]
mov esi, eax
test esi, esi
jne 0x51015a
mov eax, dword [ebp - 0x34c]
mov esi, dword [ebp - 0x2c8]
mov ecx, dword [edi]
mov eax, dword [eax]
cmp byte [esi + 0x15], 0
mov edi, dword [eax + ecx*4]
je 0x50ff3b
cmp dword [ebp - 0x35c], 0
je 0x50fdef
xorps xmm0, xmm0
movlpd qword [ebp - 0x2b8], xmm0
movlpd qword [ebp - 0x2b0], xmm0
jmp 0x50febe
mov ecx, edi
call fcn.00504640
cmp byte [esi + 0x16], al
jne 0x50fe04
mov al, byte [edi + 0x18]
mov byte [ebp - 0x2a0], al
lea eax, [edi + 0x98]
lea ecx, [ebp - 0x220]
cmp eax, ecx
je 0x50fe9b
mov esi, dword [eax + 4]
cmp esi, dword [ebp - 0x218]
jbe 0x50fe7c
push dword [ebp - 0x220]
call fcn.00588148
mov ecx, 0x10
mov dword [ebp - 0x218], 0
mov eax, esi
mov dword [ebp - 0x21c], 0
mul ecx
mov ecx, 0xffffffff
mov dword [ebp - 0x220], 0
cmovb eax, ecx
push eax
call fcn.0058813f
mov ecx, eax
mov dword [ebp - 0x218], esi
add esp, 8
mov dword [ebp - 0x220], ecx
lea eax, [edi + 0x98]
jmp 0x50fe82
mov ecx, dword [ebp - 0x220]
mov dword [ebp - 0x21c], esi
test esi, esi
je 0x50fe9b
shl esi, 4
push esi
push dword [eax]
push ecx
call fcn.0058aed0
add esp, 0xc
mov eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
mov dword [ebp - 0x2b0], eax
mov dword [ebp - 0x2ac], ecx
mov eax, dword [edi]
mov ecx, dword [edi + 4]
mov dword [ebp - 0x2b8], eax
mov dword [ebp - 0x2b4], ecx
mov al, byte [edi + 0x19]
lea ecx, [ebp - 0x348]
mov byte [ebp - 0x29f], al
mov al, byte [edi + 0x1a]
mov byte [ebp - 0x29e], al
mov eax, dword [edi + 0x28]
mov dword [ebp - 0x290], eax
mov eax, dword [edi + 0x2c]
mov dword [ebp - 0x28c], eax
mov eax, dword [edi + 0x20]
mov dword [ebp - 0x298], eax
mov eax, dword [edi + 0x24]
mov dword [ebp - 0x294], eax
lea eax, [ebp - 0x2b8]
push eax
call fcn.0050d920
mov esi, eax
test esi, esi
jne 0x51015a
mov eax, dword [edi]
mov ecx, dword [edi + 4]
add eax, 0x1ff
mov edx, dword [edi + 0xc0]
adc ecx, esi
mov esi, dword [edi + 0xc4]
and eax, 0xfffffe00
add edx, dword [edi + 0xb8]
adc esi, dword [edi + 0xbc]
jmp 0x50ff65
mov eax, dword [edi]
mov ecx, dword [edi + 4]
add eax, 0x1ff
mov edx, dword [edi + 0xb8]
mov esi, dword [edi + 0xbc]
adc ecx, 0
and eax, 0xfffffe00
add eax, dword [edi + 0xc0]
adc ecx, dword [edi + 0xc4]
mov dword [ebp - 0x2c4], eax
or eax, ecx
mov dword [ebp - 0x2c8], ecx
je 0x510047
mov ecx, dword [ebp - 0x354]
push esi
push edx
call fcn.00430da0
mov esi, eax
add esp, 8
test esi, esi
jne 0x51015a
mov ecx, dword [ebp - 0x2f8]
mov edi, dword [ebp - 0x2c4]
mov eax, dword [ebp - 0x2c8]
mov dword [ecx + 0x10], edi
mov dword [ecx + 0x14], eax
mov dword [ecx + 0x18], esi
mov dword [ecx + 0x1c], esi
mov byte [ecx + 0x20], 0
cmp dword [ebp - 0x2dc], esi
je 0x50ffdb
mov eax, dword [ebp - 0x2f4]
test eax, eax
je 0x50ffdb
mov ecx, dword [eax]
push esi
push esi
push esi
push esi
push eax
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
jne 0x51015a
push dword [ebp - 0x30c]
mov ecx, dword [ebp - 0x2ec]
push 0
push 0
push dword [ebp - 0x304]
mov eax, dword [ecx]
push dword [ebp - 0x2f8]
push ecx
call dword [eax + 0xc]
mov esi, eax
test esi, esi
jne 0x51015a
mov ecx, dword [ebp - 0x2ec]
cmp dword [ecx + 0x20], edi
jne 0x510155
mov eax, dword [ebp - 0x2c8]
cmp dword [ecx + 0x24], eax
jne 0x510155
add dword [ebp - 0x328], edi
adc dword [ebp - 0x324], eax
add dword [ebp - 0x300], edi
mov edi, dword [ebp - 0x2fc]
adc edi, eax
mov dword [ebp - 0x2fc], edi
jmp 0x51004d
mov edi, dword [ebp - 0x2fc]
push dword [ebp - 0x360]
call fcn.00588148
mov byte [ebp - 4], 0x15
push dword [ebp - 0x220]
call fcn.00588148
push dword [ebp - 0x264]
call fcn.00588148
push dword [ebp - 0x270]
call fcn.00588148
push dword [ebp - 0x27c]
call fcn.00588148
push dword [ebp - 0x288]
call fcn.00588148
mov eax, dword [ebp - 0x30c]
add esp, 0x18
mov ecx, dword [ebp - 0x300]
inc dword [ebp - 0x2d8]
push 0
mov dword [eax + 0x28], ecx
mov dword [eax + 0x2c], edi
push 0
mov dword [eax + 0x20], ecx
push eax
mov dword [eax + 0x24], edi
call fcn.00558180
mov esi, eax
test esi, esi
jne 0x510280
jmp 0x50ef2f
mov esi, 0x80070057
lea ecx, [ebp - 0x380]
jmp 0x5100e5
mov esi, 0x80070057
lea ecx, [ebp - 0x390]
call fcn.004719d0
mov byte [ebp - 4], 0x98
mov eax, dword [ebp - 0x2bc]
test eax, eax
je 0x51013c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x51013c
mov esi, 0x80070057
jmp 0x51013c
mov eax, dword [ebp - 0x2f0]
jmp 0x510114
mov esi, 0x80004005
mov dword [ebp - 4], 0x118
test eax, eax
je 0x51013c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x51013c
mov esi, 0x80004005
jmp 0x51013c
push dword [ebp - 0x370]
call fcn.00588148
add esp, 4
mov dword [ebp - 4], 0x123
mov eax, dword [ebp - 0x2c0]
test eax, eax
je 0x51015a
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x51015a
mov esi, 0x80004005
push dword [ebp - 0x360]
call fcn.00588148
push dword [ebp - 0x220]
call fcn.00588148
push dword [ebp - 0x264]
call fcn.00588148
push dword [ebp - 0x270]
call fcn.00588148
push dword [ebp - 0x27c]
call fcn.00588148
push dword [ebp - 0x288]
call fcn.00588148
add esp, 0x18
jmp 0x510280
cmp dword [ebp - 0x2dc], 0
je 0x5101cf
mov eax, dword [ebp - 0x2f4]
test eax, eax
je 0x5101cf
mov ecx, dword [eax]
push 0
push 0
push 0
push 0
push eax
call dword [ecx + 0xc]
mov esi, eax
test esi, esi
jne 0x510280
push 0x200
lea eax, [ebp - 0x210]
push 0
push eax
call fcn.0058ad30
add esp, 0xc
mov dword [ebp - 0x304], 0
nop
add dword [ebp - 0x328], 0x200
lea edx, [ebp - 0x210]
mov esi, dword [ebp - 0x348]
mov edi, 0x200
adc dword [ebp - 0x324], 0
mov dword [ebp - 0x2d8], edx
mov dword [ebp - 0x350], esi
nop
mov eax, dword [esi]
lea edx, [ebp - 0x2e0]
mov ecx, SysReAllocString
cmp edi, ecx
push edx
mov edx, dword [ebp - 0x2d8]
cmovb ecx, edi
push ecx
push edx
push esi
call dword [eax + 0xc]
mov esi, eax
mov eax, dword [ebp - 0x2e0]
add dword [ebp - 0x2d8], eax
sub edi, eax
test esi, esi
jne 0x510280
test eax, eax
je 0x51027b
mov esi, dword [ebp - 0x350]
test edi, edi
jne 0x510220
mov eax, dword [ebp - 0x304]
inc eax
mov dword [ebp - 0x304], eax
cmp eax, 2
jb 0x5101f0
xor esi, esi
jmp 0x510280
mov esi, 0x80004005
mov ecx, dword [ebp - 0x2f8]
mov dword [ebp - 4], 0x14f
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp - 0x2ec]
mov dword [ebp - 4], 0x150
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [ebp - 0x30c]
mov dword [ebp - 4], 0x151
push ecx
mov eax, dword [ecx]
call dword [eax + 8]
mov dword [ebp - 4], 0x152
mov eax, dword [ebp - 0x310]
test eax, eax
je 0x5102d0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0x153
mov eax, dword [ebp - 0x2f4]
test eax, eax
je 0x5102e7
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0x154
mov eax, dword [ebp - 0x2dc]
test eax, eax
je 0x5102fe
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [ebp - 0x338]
call fcn.00588148
push dword [ebp - 0x344]
call fcn.00588148
add esp, 8
mov dword [ebp - 4], 0x155
mov ecx, dword [ebp - 0x348]
test ecx, ecx
je 0x51032e
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00587d99
mov esp, ebp
pop ebp
ret