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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [ebp + 0x14]
push ebx
mov ebx, edx
cdq
xor eax, edx
mov dword [ebp - 8], ebx
sub eax, edx
mov dword [ebp - 0xc], eax
xor eax, eax
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x28], edi
movzx ecx, word [edi + 0x76]
mov word [edi + 0x7a], ax
mov dword [edi + 0x58], eax
mov dword [edi + 0x5c], eax
mov dword [edi + 0x60], eax
mov eax, 0x2000
add ax, cx
movsx esi, cx
shr ax, 0xe
mov ecx, 0x4000
mov word [edi + 0x78], ax
mov eax, dword [0x6e85a4]
movsx eax, word [eax + 0x4e]
sub eax, esi
cdq
xor eax, edx
sub eax, edx
mov edx, 0x3000
cmp eax, 0x7000
cmovg ecx, edx
lea edx, [esi + ecx]
sub esi, ecx
sar edx, 3
mov ecx, ebx
and edx, 0x1ffe
sar esi, 3
and esi, 0x1ffe
movsx eax, word [edx*2 + 0x4b95b0]
imul eax, eax, 0x3e8
sar eax, 0xe
mov dword [ebp - 0x34], eax
movsx eax, word [esi*2 + 0x4b95b0]
imul eax, eax, 0x3e8
sar eax, 0xe
mov dword [ebp - 0x2c], eax
movsx eax, word [edx*2 + 0x4b95b2]
imul eax, eax, 0x3e8
sar eax, 0xe
mov dword [ebp - 0x38], eax
movsx eax, word [esi*2 + 0x4b95b2]
mov esi, dword [ebp + 0xc]
imul eax, eax, 0x3e8
sar eax, 0xe
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 8]
sub eax, dword [ebp - 0xc]
mov dword [ebp - 4], eax
lea edx, [eax - 0xa0]
mov eax, dword [ebp + 0x10]
movzx eax, ax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x10]
push eax
push esi
call fcn.0041e0e0
mov ecx, dword [ebp - 4]
mov edx, ebx
add ecx, 0xffffff60
mov dword [ebp - 0x24], eax
push esi
push ecx
mov ecx, eax
call fcn.0041e450
mov ecx, eax
sub ecx, dword [ebp + 8]
cmp eax, 0xffff8100
cmove ecx, eax
mov dword [ebp - 0x20], ecx
mov eax, dword [ebp - 4]
mov edx, ebx
mov ecx, dword [ebp - 0x24]
add eax, 0xffffff60
push esi
push eax
call fcn.0041f820
add esp, 0x18
cmp eax, 0xffff8100
je 0x41af41
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp + 8]
add eax, ecx
mov ecx, dword [ebp - 0x20]
mov edx, ebx
mov dword [edi + 4], eax
mov eax, dword [0x6e0d9c]
mov dword [edi + 8], eax
mov eax, dword [0x6e0d98]
mov dword [edi + 0x7c], eax
mov eax, dword [0x6e85a4]
mov dword [edi], ecx
mov ecx, dword [ebp - 0x24]
push esi
push dword [eax + 0x44]
call fcn.0041a8b0
movzx eax, ax
add esp, 8
mov byte [edi + 0x80], al
sar eax, 8
mov byte [edi + 0x81], al
movsx eax, word [edi + 0x78]
cmp eax, 3
ja case.default.0x41af8e
jmp dword [eax*4 + 0x41ba5c]
movzx eax, word [edi + 0x76]
mov ebx, dword [edi + 0x48]
mov edx, ebx
shr eax, 3
and eax, 0x1ffe
movsx ecx, word [eax*2 + 0x4b95b0]
mov eax, ebx
imul ecx, ebx
shl ecx, 2
sar ecx, 0xe
neg eax
mov dword [ebp - 0x14], eax
mov eax, ebx
mov dword [0x7ccbc4], ecx
jmp 0x41b084
movzx eax, word [edi + 0x76]
mov ebx, dword [edi + 0x48]
mov ecx, ebx
shr eax, 3
and eax, 0x1ffe
mov dword [0x7ccbc4], ebx
mov dword [ebp - 0x14], ebx
movsx edx, word [eax*2 + 0x4b95b2]
mov eax, ebx
imul edx, ebx
shl edx, 2
sar edx, 0xe
neg eax
mov dword [ebp - 0x20], eax
mov eax, edx
jmp 0x41b087
movzx eax, word [edi + 0x76]
mov ecx, dword [edi + 0x48]
shr eax, 3
and eax, 0x1ffe
mov dword [ebp - 0x14], ecx
mov ebx, dword [ebp - 0x14]
movsx ecx, word [eax*2 + 0x4b95b0]
imul ecx, dword [ebp - 0x14]
shl ecx, 2
sar ecx, 0xe
neg ebx
mov dword [0x7ccbc4], ecx
mov edx, ebx
mov eax, ebx
jmp 0x41b084
movzx eax, word [edi + 0x76]
mov ecx, dword [edi + 0x48]
mov ebx, ecx
shr eax, 3
neg ebx
and eax, 0x1ffe
mov dword [ebp - 0x20], ecx
mov dword [0x7ccbc4], ebx
mov dword [ebp - 0x14], ebx
movsx edx, word [eax*2 + 0x4b95b2]
imul edx, ecx
mov ecx, ebx
shl edx, 2
sar edx, 0xe
mov eax, edx
jmp 0x41b087
xor ebx, ebx
mov dword [0x7ccbc4], 0
xor ecx, ecx
mov dword [ebp - 0x14], ebx
xor edx, edx
xor eax, eax
mov dword [ebp - 0x20], ebx
cmp dword [ebp + 0x14], 0
mov dword [0x7ccbc8], eax
jge 0x41b09b
mov eax, dword [ebp + 0x10]
movzx eax, ax
mov dword [ebp - 0x10], eax
add ecx, dword [ebp - 8]
lea eax, [edx + esi]
lea edx, [ebp - 0x10]
mov dword [ebp - 0x1c], ecx
push edx
mov edx, dword [ebp - 4]
push eax
mov dword [ebp + 0x14], eax
lea edx, [edx - 0xa0]
call fcn.0041e0e0
push dword [ebp + 0x14]
mov edx, dword [ebp - 0x1c]
mov esi, eax
mov eax, dword [ebp - 4]
mov ecx, esi
add eax, 0xffffff60
push eax
call fcn.0041e450
push dword [ebp + 0x14]
mov edx, dword [ebp - 0x1c]
mov ecx, eax
sub ecx, dword [ebp + 8]
cmp eax, 0xffff8100
cmove ecx, eax
mov eax, dword [ebp - 4]
add eax, 0xffffff60
mov dword [ebp - 0x24], ecx
push eax
mov ecx, esi
call fcn.0041f820
add esp, 0x18
cmp eax, 0xffff8100
je 0x41b10a
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp + 8]
add eax, ecx
mov ecx, dword [ebp + 0x14]
lea edx, [ebp - 0x10]
add ecx, dword [0x7ccbc8]
mov esi, dword [ebp - 4]
mov dword [edi + 0x10], eax
add esi, 0xffffff60
mov eax, dword [ebp - 0x24]
mov dword [edi + 0xc], eax
mov eax, dword [0x6e0d9c]
mov dword [edi + 0x14], eax
mov eax, dword [ebp - 0x1c]
add eax, dword [0x7ccbc4]
push edx
mov dword [ebp + 0x14], ecx
mov edx, esi
push ecx
mov ecx, eax
mov dword [ebp - 0x1c], eax
call fcn.0041e0e0
push dword [ebp + 0x14]
mov edx, dword [ebp - 0x1c]
mov ecx, eax
push esi
call fcn.0041e450
movzx edx, word [edi + 0x84]
mov ecx, eax
sub ecx, dword [ebp + 8]
add esp, 0x10
cmp eax, 0xffff8100
cmove ecx, eax
test dl, 3
je 0x41b199
mov eax, dword [edi + 0x14]
cmp eax, 2
je 0x41b181
cmp eax, 3
jne 0x41b199
mov eax, dword [edi + 0xc]
cmp eax, dword [edi]
jge 0x41b199
cmp ecx, eax
jge 0x41b199
test eax, eax
jns 0x41b199
mov dword [edi + 0xc], 0xffff8001
jmp 0x41b1d5
test dl, 4
je 0x41b1b2
mov eax, dword [edi + 0x14]
cmp eax, 2
je 0x41b1ab
cmp eax, 3
jne 0x41b1b2
mov eax, dword [edi + 0xc]
cmp eax, dword [edi]
jg 0x41b1ce
test dl, 8
je 0x41b1d5
cmp dword [edi + 0xc], 0
jle 0x41b1d5
mov eax, dword [0x6e0d98]
test eax, eax
je 0x41b1d5
mov al, byte [eax]
and al, 0x1f
cmp al, 5
jne 0x41b1d5
mov dword [edi + 0xc], 0x200
mov eax, dword [ebp + 0x10]
lea edx, [ebp + 0x14]
mov ecx, dword [ebp - 0x14]
add ecx, dword [ebp - 8]
movzx eax, ax
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0xc]
add eax, ebx
mov dword [ebp - 0x18], ecx
push edx
push eax
mov edx, esi
mov dword [ebp - 0x1c], eax
call fcn.0041e0e0
push dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov esi, eax
mov eax, dword [ebp - 4]
mov ecx, esi
add eax, 0xffffff60
push eax
call fcn.0041e450
push dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov ecx, eax
sub ecx, dword [ebp + 8]
cmp eax, 0xffff8100
cmove ecx, eax
mov eax, dword [ebp - 4]
add eax, 0xffffff60
mov dword [ebp + 0x14], ecx
push eax
mov ecx, esi
call fcn.0041f820
add esp, 0x18
cmp eax, 0xffff8100
je 0x41b24b
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp + 8]
add eax, ecx
mov ecx, dword [ebp + 0x14]
mov edx, dword [0x6e0d9c]
mov dword [edi + 0x1c], eax
movzx eax, word [edi + 0x84]
and al, 3
mov dword [edi + 0x18], ecx
mov dword [edi + 0x20], edx
cmp al, 1
jne 0x41b281
cmp edx, 2
je 0x41b274
cmp edx, 3
jne 0x41b281
test ecx, ecx
jns 0x41b281
mov dword [edi + 0x18], 0xffff8001
jmp 0x41b2ba
movzx eax, word [edi + 0x84]
test al, 4
je 0x41b29a
cmp edx, 2
je 0x41b296
cmp edx, 3
jne 0x41b29a
test ecx, ecx
jg 0x41b2b3
test al, 8
je 0x41b2ba
test ecx, ecx
jle 0x41b2ba
mov eax, dword [0x6e0d98]
test eax, eax
je 0x41b2ba
mov al, byte [eax]
and al, 0x1f
cmp al, 5
jne 0x41b2ba
mov dword [edi + 0x18], 0x200
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x10]
mov ecx, dword [ebp - 0x18]
push eax
push dword [ebp - 0x1c]
lea edx, [edx - 0xa0]
call fcn.0041e0e0
push dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov esi, eax
mov eax, dword [ebp - 4]
mov ecx, esi
add eax, 0xffffff60
push eax
call fcn.0041e450
push dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
mov ecx, eax
sub ecx, dword [ebp + 8]
cmp eax, 0xffff8100
cmove ecx, eax
mov eax, dword [ebp - 4]
add eax, 0xffffff60
mov dword [ebp + 0x14], ecx
push eax
mov ecx, esi
call fcn.0041f820
add esp, 0x18
cmp eax, 0xffff8100
je 0x41b322
mov ecx, dword [ebp - 0xc]
sub ecx, dword [ebp + 8]
add eax, ecx
mov ecx, dword [ebp + 0x14]
mov edx, dword [0x6e0d9c]
mov dword [edi + 0x34], eax
movzx eax, word [edi + 0x84]
and al, 3
mov dword [edi + 0x30], ecx
mov dword [edi + 0x38], edx
cmp al, 1
jne 0x41b358
cmp edx, 2
je 0x41b34b
cmp edx, 3
jne 0x41b358
test ecx, ecx
jns 0x41b358
mov dword [edi + 0x30], 0xffff8001
jmp 0x41b391
movzx eax, word [edi + 0x84]
test al, 4
je 0x41b371
cmp edx, 2
je 0x41b36d
cmp edx, 3
jne 0x41b371
test ecx, ecx
jg 0x41b38a
test al, 8
je 0x41b391
test ecx, ecx
jle 0x41b391
mov eax, dword [0x6e0d98]
test eax, eax
je 0x41b391
mov al, byte [eax]
and al, 0x1f
cmp al, 5
jne 0x41b391
mov dword [edi + 0x30], 0x200
mov eax, dword [ebp + 0x10]
lea ecx, [ebp + 0x14]
mov edx, dword [ebp - 4]
add ebx, dword [ebp - 8]
movzx eax, ax
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0xc]
lea edx, [edx - 0xa0]
add eax, dword [ebp - 0x20]
push ecx
push eax
mov ecx, ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x14], eax
call fcn.0041e0e0
push dword [ebp - 0x14]
mov esi, eax
mov edx, ebx
mov eax, dword [ebp - 4]
mov ecx, esi
add eax, 0xffffff60
push eax
call fcn.0041e450
mov ebx, dword [ebp + 8]
mov ecx, eax
push dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
sub ecx, ebx
cmp eax, 0xffff8100
cmove ecx, eax
mov eax, dword [ebp - 4]
add eax, 0xffffff60
mov dword [ebp + 0x14], ecx
push eax
mov ecx, esi
call fcn.0041f820
add esp, 0x18
cmp eax, 0xffff8100
je 0x41b40e
mov ecx, dword [ebp - 0xc]
sub ecx, ebx
add eax, ecx
mov ecx, dword [ebp + 0x14]
mov edx, dword [0x6e0d9c]
mov dword [edi + 0x28], eax
movzx eax, word [edi + 0x84]
and al, 3
mov dword [edi + 0x24], ecx
mov dword [edi + 0x2c], edx
cmp al, 1
jne 0x41b444
cmp edx, 2
je 0x41b437
cmp edx, 3
jne 0x41b444
test ecx, ecx
jns 0x41b444
mov dword [edi + 0x24], 0xffff8001
jmp 0x41b47d
movzx eax, word [edi + 0x84]
test al, 4
je 0x41b45d
cmp edx, 2
je 0x41b459
cmp edx, 3
jne 0x41b45d
test ecx, ecx
jg 0x41b476
test al, 8
je 0x41b47d
test ecx, ecx
jle 0x41b47d
mov eax, dword [0x6e0d98]
test eax, eax
je 0x41b47d
mov al, byte [eax]
and al, 0x1f
cmp al, 5
jne 0x41b47d
mov dword [edi + 0x24], 0x200
mov edx, dword [ebp - 4]
lea eax, [ebp - 0x10]
mov ecx, dword [ebp - 0x24]
push eax
push dword [ebp - 0x14]
lea edx, [edx - 0xa0]
call fcn.0041e0e0
push dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov esi, eax
mov eax, dword [ebp - 4]
mov ecx, esi
add eax, 0xffffff60
push eax
call fcn.0041e450
push dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov ecx, eax
sub ecx, ebx
cmp eax, 0xffff8100
cmove ecx, eax
mov eax, dword [ebp - 4]
add eax, 0xffffff60
mov dword [ebp + 0x14], ecx
push eax
mov ecx, esi
call fcn.0041f820
add esp, 0x18
cmp eax, 0xffff8100
je 0x41b4e3
mov ecx, dword [ebp - 0xc]
sub ecx, ebx
add eax, ecx
movzx ebx, word [edi + 0x84]
mov ecx, dword [ebp + 0x14]
mov edx, dword [0x6e0d9c]
mov dword [edi + 0x40], eax
mov al, bl
and al, 3
mov dword [edi + 0x3c], ecx
mov dword [edi + 0x44], edx
cmp al, 1
jne 0x41b51b
cmp edx, 2
je 0x41b50e
cmp edx, 3
jne 0x41b51b
test ecx, ecx
jns 0x41b51b
mov dword [edi + 0x3c], 0xffff8001
jmp 0x41b54f
test bl, 4
je 0x41b52e
cmp edx, 2
je 0x41b52a
cmp edx, 3
jne 0x41b52e
test ecx, ecx
jg 0x41b548
test bl, 8
je 0x41b54f
test ecx, ecx
jle 0x41b54f
mov eax, dword [0x6e0d98]
test eax, eax
je 0x41b54f
mov al, byte [eax]
and al, 0x1f
cmp al, 5
jne 0x41b54f
mov dword [edi + 0x3c], 0x200
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x30]
add ebx, dword [ebp - 8]
add edi, dword [ebp + 0xc]
lea edx, [edx - 0xa0]
movzx eax, ax
mov ecx, ebx
mov dword [ebp + 0x14], eax
lea eax, [ebp + 0x14]
push eax
push edi
call fcn.0041e0e0
mov esi, eax
mov edx, ebx
mov eax, dword [ebp - 4]
mov ecx, esi
add eax, 0xffffff60
push edi
push eax
call fcn.0041e450
mov eax, dword [ebp - 4]
mov edx, ebx
add eax, 0xffffff60
mov ecx, esi
push edi
push eax
call fcn.0041f820
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp - 4]
mov ebx, dword [ebp - 0x34]
mov edi, dword [ebp - 0x38]
add ebx, dword [ebp - 8]
add edi, dword [ebp + 0xc]
lea edx, [edx - 0xa0]
movzx eax, ax
mov ecx, ebx
mov dword [ebp + 0x14], eax
lea eax, [ebp + 0x14]
push eax
push edi
call fcn.0041e0e0
mov esi, eax
mov edx, ebx
mov eax, dword [ebp - 4]
mov ecx, esi
add eax, 0xffffff60
push edi
push eax
call fcn.0041e450
mov eax, dword [ebp - 4]
mov edx, ebx
add eax, 0xffffff60
mov ecx, esi
push edi
push eax
call fcn.0041f820
push dword [ebp - 0xc]
mov edi, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov esi, dword [ebp - 8]
mov edx, esi
mov ebx, dword [ebp - 0x28]
mov ecx, ebx
push edi
push dword [ebp + 8]
call fcn.0041aa50
mov edx, dword [ebp + 8]
add esp, 0x40
test eax, eax
je 0x41b685
mov esi, dword [ebx + 0x58]
lea eax, [ebp - 0x10]
mov ebx, dword [ebx + 0x60]
add esi, dword [ebp - 8]
add ebx, edi
push eax
push ebx
mov ecx, esi
mov dword [ebp + 0x10], esi
call fcn.0041e0e0
mov edi, eax
mov edx, esi
push ebx
push dword [ebp + 8]
mov ecx, edi
call fcn.0041e450
mov edx, dword [ebp + 0x10]
mov ecx, edi
push ebx
push dword [ebp + 8]
mov esi, eax
call fcn.0041f820
mov edx, dword [ebp + 8]
add esp, 0x18
lea ecx, [edx - 0x200]
cmp esi, ecx
jl 0x41b667
cmp eax, dword [ebp - 4]
jle 0x41b67c
mov ebx, dword [ebp - 0x28]
mov eax, dword [ebx + 0x58]
neg eax
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x60]
neg eax
mov dword [ebx + 0x60], eax
jmp 0x41b67f
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 8]
mov edi, dword [ebp + 0xc]
mov eax, dword [ebx]
cmp eax, 0xffff8100
jne 0x41b6a3
mov eax, dword [ebx + 0x64]
sub eax, esi
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x68]
sub eax, edx
mov dword [ebx + 0x5c], eax
jmp 0x41ba44
mov ecx, dword [ebx + 4]
sub eax, ecx
test eax, eax
jg 0x41b6d4
mov eax, dword [ebx + 0x64]
sub eax, esi
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x68]
sub eax, edx
mov dword [ebx + 0x5c], eax
mov eax, dword [ebx + 0x6c]
sub eax, edi
mov dword [ebx + 0x60], eax
mov eax, 0x20
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
test ecx, ecx
js 0x41b6ec
or word [ebx + 0x84], 0x40
mov eax, 8
mov dword [ebx + 0x5c], ecx
mov word [ebx + 0x7a], ax
mov eax, dword [ebx + 0xc]
cmp eax, dword [ebx + 0x4c]
jg 0x41b976
mov ecx, dword [ebx + 0x50]
cmp eax, ecx
jl 0x41b976
mov eax, dword [ebx + 0x54]
cmp dword [ebx + 0x10], eax
jg 0x41b976
jl 0x41b739
mov eax, dword [ebx + 0x64]
sub eax, esi
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x68]
sub eax, edx
mov dword [ebx + 0x5c], eax
mov eax, dword [ebx + 0x6c]
sub eax, edi
mov dword [ebx + 0x60], eax
mov eax, 0x10
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebx + 0x4c]
cmp dword [ebx + 0x18], edx
jg 0x41b870
cmp dword [ebx + 0x18], ecx
jl 0x41b870
cmp dword [ebx + 0x1c], eax
jg 0x41b870
cmp edx, dword [ebx + 0x24]
jl 0x41b76a
cmp dword [ebx + 0x24], ecx
jl 0x41b76a
cmp eax, dword [ebx + 0x28]
jge 0x41ba55
cmp dword [ebx + 0x2c], 4
jne 0x41b790
mov eax, dword [ebx + 0x64]
sub eax, esi
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x6c]
sub eax, edi
mov dword [ebx + 0x60], eax
mov eax, 4
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
movsx eax, word [ebx + 0x78]
cmp eax, 3
ja case.default.0x41b79d
jmp dword [eax*4 + 0x41ba6c]
mov eax, dword [0x7ccbc4]
mov ecx, dword [ebp - 0x24]
add eax, esi
mov edx, ecx
sar eax, 0xa
sar edx, 0xa
cmp edx, eax
jne 0x41b7cf
xor eax, eax
mov dword [ebx + 0x58], eax
mov eax, 4
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
and ecx, 0x3ff
cmp eax, edx
jle 0x41b7f3
mov eax, 0x401
sub eax, ecx
mov dword [ebx + 0x58], eax
mov eax, 4
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, ecx
not eax
mov dword [ebx + 0x58], eax
mov eax, 4
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x7ccbc8]
mov ecx, dword [ebp - 0x14]
add eax, edi
mov edx, ecx
sar eax, 0xa
sar edx, 0xa
cmp edx, eax
jne 0x41b835
xor eax, eax
mov dword [ebx + 0x60], eax
mov eax, 4
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
and ecx, 0x3ff
cmp eax, edx
jle 0x41b859
mov eax, 0x401
sub eax, ecx
mov dword [ebx + 0x60], eax
mov eax, 4
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, ecx
not eax
mov dword [ebx + 0x60], eax
pop edi
mov eax, 4
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebx + 0x20], 4
jne 0x41b896
mov eax, dword [ebx + 0x64]
sub eax, esi
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x6c]
sub eax, edi
mov dword [ebx + 0x60], eax
mov eax, 2
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
movsx eax, word [ebx + 0x78]
cmp eax, 3
ja case.default.0x41b8a3
jmp dword [eax*4 + 0x41ba7c]
mov eax, dword [0x7ccbc4]
mov edx, dword [ebp - 0x18]
add eax, esi
mov ecx, edx
sar eax, 0xa
sar ecx, 0xa
cmp ecx, eax
jne 0x41b8d5
xor eax, eax
mov dword [ebx + 0x58], eax
mov eax, 2
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
and edx, 0x3ff
cmp eax, ecx
jle 0x41b8f9
mov eax, 0x401
sub eax, edx
mov dword [ebx + 0x58], eax
mov eax, 2
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, edx
not eax
mov dword [ebx + 0x58], eax
mov eax, 2
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x7ccbc8]
mov edx, dword [ebp - 0x1c]
add eax, edi
mov ecx, edx
sar eax, 0xa
sar ecx, 0xa
cmp ecx, eax
jne 0x41b93b
xor eax, eax
mov dword [ebx + 0x60], eax
mov eax, 2
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
and edx, 0x3ff
cmp eax, ecx
jle 0x41b95f
mov eax, 0x401
sub eax, edx
mov dword [ebx + 0x60], eax
mov eax, 2
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, edx
not eax
mov dword [ebx + 0x60], eax
pop edi
mov eax, 2
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebx + 0x14]
cmp eax, 3
je 0x41ba3c
cmp eax, 4
je 0x41ba3c
movsx eax, word [ebx + 0x78]
cmp eax, 3
ja case.default.0x41b998
jmp dword [eax*4 + 0x41ba8c]
mov eax, dword [ebx + 0x64]
mov ecx, dword [0x7ccbc8]
sub eax, esi
add ecx, edi
mov dword [ebx + 0x58], eax
mov eax, ecx
sar edi, 0xa
sar eax, 0xa
cmp eax, edi
jne 0x41b9d0
xor eax, eax
mov dword [ebx + 0x60], eax
mov eax, 1
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
and ecx, 0x3ff
cmp edi, eax
jle 0x41b9f4
mov eax, 0x401
sub eax, ecx
mov dword [ebx + 0x60], eax
mov eax, 1
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, ecx
not eax
mov dword [ebx + 0x60], eax
mov eax, 1
pop edi
pop esi
mov word [ebx + 0x7a], ax
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x7ccbc4]
add ecx, esi
sar esi, 0xa
mov eax, ecx
sar eax, 0xa
cmp eax, esi
jne 0x41ba23
xor eax, eax
jmp 0x41ba41
and ecx, 0x3ff
cmp esi, eax
jle 0x41ba36
mov eax, 0x401
sub eax, ecx
jmp 0x41ba41
mov eax, ecx
not eax
jmp 0x41ba41
mov eax, dword [ebx + 0x64]
sub eax, esi
mov dword [ebx + 0x58], eax
mov eax, dword [ebx + 0x6c]
sub eax, edi
mov dword [ebx + 0x60], eax
mov eax, 1
mov word [ebx + 0x7a], ax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret