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

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x18]
xor ebp, ebp
cmp edi, ebp
jne 0x49ee77
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
mov cl, byte [edi]
xor eax, eax
test cl, 0x80
je 0x49ee8d
mov al, byte [edi + 1]
xor ecx, ecx
mov cl, byte [edi + 2]
shl ecx, 8
add eax, ecx
mov dx, word [0x607f34]
and edx, 0xffff
cmp edx, eax
jne 0x49f380
xor ecx, ecx
mov word [0x607f34], bp
mov cl, byte [edi]
xor edx, edx
mov dl, byte [0x6085a0]
mov eax, ecx
and eax, 0x3f
inc edi
add eax, edx
cmp eax, 0x40
jle 0x49eec7
mov eax, 0x40
lea edx, [eax + eax*8]
test cl, 0x80
lea eax, [eax + edx*4]
lea esi, [eax*4 + 0x6059e0]
je 0x49eee8
mov dx, word [edi]
add edi, 2
test dx, dx
je 0x49f378
test cl, 0x40
je 0x49f03a
xor eax, eax
mov al, byte [edi]
inc edi
cmp eax, 0xa
ja case.default.0x49eeff
jmp dword [eax*4 + 0x49f390]
xor eax, eax
mov al, byte [edi]
inc edi
mov byte [esi + 0xd], al
jmp case.default.0x49eeff
xor eax, eax
mov al, byte [edi]
inc edi
shl eax, 8
mov word [esi + 0x14], ax
mov word [esi + 0x16], ax
jmp case.default.0x49eeff
xor eax, eax
mov al, byte [edi]
inc edi
mov ecx, eax
imul ecx, eax
shl ecx, 1
mov word [esi + 0x12], cx
jmp case.default.0x49eeff
movzx dx, byte [edi]
mov word [esi + 0x6e], dx
inc edi
jmp case.default.0x49eeff
mov ax, word [edi]
add edi, 2
mov word [esi + 0x80], ax
jmp case.default.0x49eeff
mov cl, byte [edi]
mov byte [0x6085a2], cl
jmp 0x49ef6e
mov al, byte [edi]
mov byte [0x6083d8], al
mov cl, byte [0x6085a2]
mov dl, byte [0x6083d8]
mov eax, dword [0x607f5c]
and ecx, 0xff
and edx, 0xff
inc edi
imul ecx, edx
lea eax, [eax + eax*2]
xor edx, edx
lea eax, [eax + eax*4]
shl eax, 2
div ecx
mov cl, byte [0x6085a2]
mov dl, byte [0x6083d8]
and ecx, 0xff
and edx, 0xff
mov esi, eax
mov eax, dword [0x607f5c]
imul ecx, edx
lea eax, [eax + eax*2]
xor edx, edx
shl esi, 0x10
lea eax, [eax + eax*4]
shl eax, 2
div ecx
mov cl, byte [0x6085a2]
and ecx, 0xff
mov eax, edx
mov dl, byte [0x6083d8]
and edx, 0xff
imul ecx, edx
shl eax, 0x10
xor edx, edx
div ecx
add esi, eax
xor ebp, ebp
mov dword [0x6083e0], esi
jmp case.default.0x49eeff
mov al, byte [edi]
inc edi
mov byte [esi + 0x84], al
jmp case.default.0x49eeff
mov cx, word [edi]
add edi, 2
mov word [esi + 0x7e], cx
jmp case.default.0x49eeff
movzx dx, byte [edi]
mov word [esi + 0x1e], dx
inc edi
jmp case.default.0x49eeff
movzx ax, byte [edi]
mov word [esi + 0x1c], ax
inc edi
jmp case.default.0x49eeff
xor ebx, ebx
xor ecx, ecx
mov bl, byte [edi]
mov cl, byte [edi + 1]
inc edi
inc edi
test bl, 0x80
jne 0x49f33b
xor eax, eax
xor edx, edx
mov al, byte [edi]
mov dl, byte [edi + 1]
inc edi
mov ebp, edx
inc edi
xor edx, edx
mov dl, byte [edi]
mov byte [esi + 0xc], bl
mov byte [esi + 0xd], al
mov eax, ebp
imul eax, ebp
shl eax, 1
mov word [esi + 0x12], ax
mov eax, edx
mov edx, ecx
xor ebp, ebp
imul edx, ecx
shl eax, 8
mov word [esi + 0x16], ax
mov word [esi + 0x14], ax
shl edx, 1
mov word [esi + 0x18], dx
mov word [esi + 0x6e], bp
mov word [esi + 0x70], bp
mov word [esi + 0x7a], bp
mov word [esi + 0x78], bp
mov word [esi + 0x80], bp
mov al, byte [esi + 0x84]
inc edi
cmp al, 0x40
jae 0x49f2f7
xor eax, eax
mov byte [esi + 0xf], 0
mov al, byte [esi + 0xd]
mov ecx, eax
shr eax, 7
and ecx, 0x7f
shl eax, 7
add ecx, eax
mov ecx, dword [ecx*4 + 0x605560]
cmp ecx, ebp
je 0x49f2f7
lea edx, [ecx + 0xaa]
mov dword [esi + 0x20], edx
mov al, byte [ecx + ebx + 0x2a]
xor dx, dx
mov dl, al
cmp dx, word [ecx + 0x148]
jae 0x49f2f7
and eax, 0xff
lea eax, [eax + eax*8]
lea eax, [ecx + eax*8 + 0x14a]
mov dword [esi + 0x42], eax
mov cl, byte [ecx + ebx + 0x2a]
mov byte [esi + 0xe], cl
mov ecx, dword [eax + 0x44]
cmp ecx, ebp
je 0x49f2f7
mov edx, dword [eax + 0x40]
cmp edx, ebp
je 0x49f122
mov dword [esi + 0x20], edx
test byte [eax + 0x2c], 4
je 0x49f12a
shr ecx, 1
mov word [esi + 0x4a], bp
mov dword [esi + 0x46], ecx
mov dword [esi + 0x4e], ecx
mov edx, dword [eax + 0x34]
add edx, ecx
mov dword [esi + 0x52], edx
mov edx, dword [eax + 0x38]
add edx, ecx
mov dword [esi + 0x56], edx
mov edx, dword [eax + 0x30]
add edx, ecx
mov dword [esi + 0x5a], edx
mov ecx, dword [eax + 0x3c]
mov dword [esi + 0x5e], ecx
mov dx, word [eax + 0x2c]
mov word [esi + 0x4c], dx
mov cx, word [eax + 0x2a]
mov word [esi + 0x66], cx
mov dx, word [eax + 0x2a]
mov word [esi + 0x68], dx
mov cl, byte [eax + 0x2c]
test cl, 0x20
je 0x49f17e
mov ax, word [eax + 0x28]
mov word [esi + 0x16], ax
mov word [esi + 0x14], ax
mov ecx, dword [esi + 0x20]
mov byte [esi + 0x11], 1
mov al, byte [ecx]
test al, 4
mov byte [esi + 0x74], al
jne 0x49f192
mov word [esi + 0x72], bp
mov ax, word [ecx + 5]
mov word [esi + 0x70], ax
mov ecx, dword [esi + 0x20]
mov dx, word [ecx + 3]
mov word [esi + 0x6e], dx
mov eax, dword [esi + 0x20]
mov cl, byte [eax + 7]
test cl, 4
mov byte [esi + 0x75], cl
jne 0x49f1b7
mov word [esi + 0x76], bp
mov ax, word [eax + 0xc]
mov word [esi + 0x78], ax
mov ecx, dword [esi + 0x20]
mov eax, 0x7fff
mov dx, word [ecx + 0xa]
mov word [esi + 0x24], bp
test ebx, ebx
mov word [esi + 0x7a], dx
mov word [esi + 0x26], bp
mov word [esi + 0x28], bp
mov word [esi + 0x2a], ax
mov byte [esi + 0x2c], 0
mov word [esi + 0x34], bp
mov word [esi + 0x32], bp
mov word [esi + 0x30], bp
mov word [esi + 0x2e], ax
mov byte [esi + 0x2d], 0
mov word [esi + 0x36], bp
mov word [esi + 0x38], bp
mov word [esi + 0x3a], bp
mov word [esi + 0x3c], ax
mov byte [esi + 0x3e], 0
jl 0x49f243
cmp ebx, 0x77
jg 0x49f243
test byte [0x607f36], 1
je 0x49f239
mov ecx, dword [esi + 0x5e]
test ecx, ecx
je 0x49f243
mov eax, dword [ebx*4 + 0x4d6ff8]
xor edx, edx
imul eax, eax, 0x20ab
div ecx
mov ebp, eax
jmp 0x49f243
mov ebp, 0x78
sub ebp, ebx
shl ebp, 8
test ebp, ebp
mov word [esi + 0x6a], bp
mov word [esi + 0x6c], bp
je 0x49f2f1
test byte [0x607f36], 1
je 0x49f266
mov eax, 0x369de40
cdq
idiv ebp
jmp 0x49f2b4
mov eax, ebp
mov ecx, 0xc00
cdq
idiv ecx
mov ecx, dword [esi + 0x5e]
push 0
push ecx
sar edx, 2
mov eax, dword [edx*4 + 0x4d71d8]
cdq
push edx
push eax
call fcn.004b8850
mov ecx, eax
mov eax, 0x2aaaaaab
mov dword [esp + 0x10], edx
imul ebp
sar edx, 9
mov eax, edx
mov dword [esp + 0x18], ecx
shr eax, 0x1f
lea ecx, [edx + eax + 0xa]
mov edx, dword [esp + 0x18]
mov eax, edx
mov edx, dword [esp + 0x10]
call fcn.004b9770
xor edx, edx
mov ecx, eax
div dword [0x607f5c]
xor edx, edx
mov ebp, eax
mov eax, ecx
shl ebp, 0x10
mov dword [esi + 0x62], ebp
mov ecx, dword [esi + 0x52]
div dword [0x607f5c]
mov eax, edx
xor edx, edx
shl eax, 0x10
div dword [0x607f5c]
mov edx, dword [esi + 0x56]
add eax, ebp
cmp ecx, edx
mov dword [esi + 0x62], eax
jbe 0x49f2f1
neg eax
mov dword [esi + 0x62], eax
mov byte [esi + 0xf], 1
xor ebp, ebp
xor eax, eax
cmp ebx, ebp
jl 0x49f335
cmp ebx, 0x77
jg 0x49f335
test byte [0x607f36], 1
je 0x49f32b
mov ecx, dword [esi + 0x5e]
cmp ecx, ebp
je 0x49f335
mov eax, dword [ebx*4 + 0x4d6ff8]
xor edx, edx
imul eax, eax, 0x20ab
div ecx
xor ebp, ebp
mov word [esi + 0x7c], ax
jmp case.default.0x49eeff
mov eax, 0x78
sub eax, ebx
shl eax, 8
mov word [esi + 0x7c], ax
jmp case.default.0x49eeff
mov byte [esi + 0xc], bl
mov cl, byte [edi]
xor eax, eax
test cl, 0x80
je 0x49f354
mov al, byte [edi + 1]
xor edx, edx
mov dl, byte [edi + 2]
shl edx, 8
add eax, edx
mov cx, word [0x607f34]
and ecx, 0xffff
cmp ecx, eax
je 0x49eea2
inc word [0x607f34]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret
inc word [0x607f34]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret