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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb4
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x10]
mov ebx, ecx
mov ecx, esi
mov dword [esp + 0x34], ebx
mov eax, dword [edi + 4]
mov edx, dword [edi + 0xc]
sub ecx, eax
lea ecx, [ecx + edx - 1]
mov edx, dword [edi + 8]
push ecx
mov ecx, dword [edi]
sub edx, ecx
mov ecx, dword [ebp + 8]
lea edx, [edx + ecx - 1]
push edx
mov edx, esi
sub edx, eax
mov eax, dword [edi]
sub ecx, eax
mov eax, dword [ebx + 4]
push edx
push ecx
mov ecx, dword [eax + 0x84]
call fcn.004bd2b0
cmp eax, 1
mov dword [esp + 0xb8], eax
je 0x4b6e6a
test eax, eax
mov eax, dword [edi + 0x10]
jne 0x4b6be2
test eax, eax
mov eax, dword [ebx + 4]
je 0x4b6aaf
mov ecx, dword [eax + 0x48]
mov edx, dword [eax + 0x4c]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xb4], edx
mov edx, dword [edi + 4]
mov dword [esp + 0xb0], ecx
mov ecx, dword [edi]
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 8]
sub esi, edx
sub eax, ecx
push esi
lea ecx, [esp + 0x5c]
push eax
push ecx
mov ecx, ebx
mov dword [esp + 0x50], eax
call fcn.004b48d0
mov eax, dword [esp + 0x10]
mov dword [esp + 0x60], 0
test eax, eax
je 0x4b5f83
mov ecx, eax
mov edx, dword [ecx]
call dword [edx + 0xc]
test eax, eax
je 0x4b5f75
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x7c]
push edx
mov edx, dword [esp + 0x48]
mov eax, dword [ecx]
push esi
push edx
call dword [eax + 8]
lea esi, [esp + 0x7c]
jmp 0x4b5f85
mov eax, dword [esp + 0x10]
lea esi, [esp + 0x7c]
mov dword [esp + 0x60], eax
jmp 0x4b5f85
xor esi, esi
mov ecx, dword [esp + 0xb0]
mov edx, dword [esp + 0xb4]
mov eax, dword [ebx + 4]
mov dword [esp + 0x78], esi
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], edx
mov edx, dword [eax + 0x88]
xor ecx, ecx
cmp edx, ecx
jne 0x4b5fbf
fld qword [esp + 0xb0]
fmul qword [0x573718]
fstp qword [esp + 0x68]
mov dword [esp + 0x70], 1
mov dword [esp + 0xa0], ecx
cmp dword [eax + 0x3c], ecx
jne 0x4b5fe8
mov eax, dword [ebx]
mov edx, dword [eax + 0xc]
mov eax, dword [edx*4 + 0x5ca544]
mov dword [esp + 0xa4], eax
jmp 0x4b5ffb
mov edx, dword [ebx]
mov eax, dword [edx + 0xc]
mov edx, dword [eax*4 + 0x5ca554]
mov dword [esp + 0xa4], edx
mov eax, dword [edi + 0x14]
mov edx, dword [edi + 4]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0xc]
sub eax, edx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x14], eax
mov eax, dword [edi + 0xc]
cmp eax, ecx
mov dword [esp + 0x30], ecx
jle 0x4b6e6a
mov eax, dword [esp + 0x84]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
mov ebx, dword [esp + 0x34]
mov edx, dword [ecx]
mov ecx, dword [ebx + 4]
sub edi, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edx
mov ecx, dword [ecx + 0x88]
test ecx, ecx
je 0x4b6064
mov eax, dword [ecx + 8]
imul eax, edx
add eax, dword [ecx + 0x10]
add eax, edi
mov dword [esp + 0x84], eax
mov ebx, dword [ebx]
mov ecx, dword [ebx + 0xc]
cmp ecx, 3
ja case.default.0x4b606e
jmp dword [ecx*4 + 0x4b6e84]
mov ecx, dword [ebx + 8]
imul ecx, edx
mov edx, dword [ebx + 0x10]
add ecx, edx
mov edx, edi
sar edx, 3
add ecx, edx
mov edx, 0x80
mov dword [esp + 0x88], ecx
mov ecx, edi
and ecx, 7
sar edx, cl
mov dword [esp + 0x8c], edx
jmp 0x4b60ce
mov ecx, dword [ebx + 8]
imul ecx, edx
add ecx, dword [ebx + 0x10]
add ecx, edi
mov dword [esp + 0x88], ecx
jmp case.default.0x4b606e
mov ecx, dword [ebx + 8]
imul ecx, edx
mov edx, dword [ebx + 0x10]
add ecx, edx
lea edx, [edi + edi*2]
add ecx, edx
mov dword [esp + 0x88], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [ebx + 0x14]
test ecx, ecx
je 0x4b60eb
mov ebx, dword [ebx]
imul ebx, edx
add ebx, ecx
add ebx, edi
mov dword [esp + 0x90], ebx
jmp 0x4b60f6
mov dword [esp + 0x90], 0
mov ecx, dword [esp + 0x34]
mov ebx, dword [ecx + 4]
cmp dword [ebx + 0x90], 0
je 0x4b613a
mov ebx, dword [ecx + 0x10]
mov ecx, dword [ebx + 0x14]
test ecx, ecx
mov dword [esp + 0x10], ecx
je 0x4b613a
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 0x18]
add ecx, edx
mov edx, dword [esp + 0x34]
imul ecx, dword [ebx]
mov ebx, dword [edx + 0x14]
add ecx, ebx
mov ebx, dword [esp + 0x10]
add ecx, ebx
add ecx, edi
mov dword [esp + 0x80], ecx
jmp 0x4b6145
mov dword [esp + 0x80], 0
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x20], 0
mov dword [esp + 0x4c], edi
mov edx, dword [ecx + 8]
test edx, edx
jle 0x4b6a86
mov ecx, dword [esp + 0x88]
jmp 0x4b617a
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x60]
xor edx, edx
mov dl, byte [ebx]
inc ebx
test edx, edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x24], ebx
je 0x4b6a4f
fild dword [esp + 0x10]
test edi, edi
fmul qword [0x5734b0]
fstp qword [esp + 0x98]
je 0x4b61d4
mov ecx, dword [esp + 0x5c]
mov edx, dword [edi]
lea eax, [esp + 0x7c]
push eax
mov eax, dword [esp + 0x5c]
push ecx
push eax
mov ecx, edi
call dword [edx + 8]
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x78]
mov edx, dword [esp + 0xa0]
mov ebx, dword [esp + 0x34]
test edx, edx
je 0x4b62fe
mov edx, dword [ebx + 4]
mov edi, dword [edx + 0x3c]
test edi, edi
jne 0x4b62fe
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
cmp eax, 3
ja case.default.0x4b6203
jmp dword [eax*4 + 0x4b6e94]
mov cl, byte [esi]
mov byte [esp + 0x18], cl
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x18]
push eax
mov eax, dword [esp + 0x5c]
push ecx
mov ecx, dword [edx + 0x38]
push eax
call fcn.004e37f0
test eax, eax
je 0x4b623d
mov eax, dword [esp + 0x88]
mov cl, byte [esp + 0x8c]
or byte [eax], cl
jmp 0x4b624f
mov eax, dword [esp + 0x88]
mov dl, byte [esp + 0x8c]
not dl
and byte [eax], dl
mov eax, dword [esp + 0x8c]
sar eax, 1
mov dword [esp + 0x8c], eax
jne case.default.0x4b6203
mov dword [esp + 0x8c], 0x80
jmp 0x4b62e0
mov al, byte [esi]
mov byte [ecx], al
jmp 0x4b62e0
mov dl, byte [esi]
mov byte [ecx], dl
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x78]
inc eax
mov dword [esp + 0x88], eax
mov dl, byte [ecx + 1]
mov byte [eax], dl
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x78]
inc eax
mov dword [esp + 0x88], eax
mov dl, byte [ecx + 2]
jmp 0x4b62de
mov al, byte [esi + 2]
mov byte [ecx], al
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x78]
inc eax
mov dword [esp + 0x88], eax
mov dl, byte [ecx + 1]
mov byte [eax], dl
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x78]
inc eax
mov dword [esp + 0x88], eax
mov dl, byte [ecx]
mov byte [eax], dl
inc dword [esp + 0x88]
mov eax, dword [esp + 0x90]
test eax, eax
je 0x4b6a28
mov byte [eax], 0xff
jmp 0x4b6a21
mov edi, dword [ebx]
mov edx, dword [edi + 0xc]
cmp edx, 3
ja case.default.0x4b6308
jmp dword [edx*4 + 0x4b6ea4]
mov cl, byte [ecx]
mov dl, byte [esp + 0x8c]
and cl, dl
neg cl
sbb cl, cl
and ecx, 0xff
mov byte [esp + 0x28], cl
jmp case.default.0x4b6308
mov dl, byte [ecx]
mov byte [esp + 0x28], dl
jmp case.default.0x4b6308
mov dl, byte [ecx]
mov byte [esp + 0x28], dl
mov dl, byte [ecx + 1]
mov byte [esp + 0x29], dl
mov cl, byte [ecx + 2]
jmp 0x4b6354
mov dl, byte [ecx + 2]
mov byte [esp + 0x28], dl
mov dl, byte [ecx + 1]
mov byte [esp + 0x29], dl
mov cl, byte [ecx]
mov byte [esp + 0x2a], cl
mov ecx, dword [esp + 0x90]
test ecx, ecx
je 0x4b636b
mov dl, byte [ecx]
mov byte [esp + 0x50], dl
jmp 0x4b6370
mov byte [esp + 0x50], 0xff
mov ecx, dword [ebx + 4]
mov ecx, dword [ecx + 0x3c]
test ecx, ecx
je 0x4b639f
mov edx, dword [edi + 0xc]
lea eax, [esp + 0xb0]
push edx
lea edx, [esp + 0x2c]
push eax
push edx
push esi
call ecx
mov eax, dword [esp + 0x94]
mov esi, dword [esp + 0x88]
add esp, 0x10
mov ecx, dword [ebx + 4]
mov edx, dword [ecx + 0x88]
test edx, edx
je 0x4b6408
mov ecx, dword [esp + 0x70]
test ecx, ecx
je 0x4b63f6
xor edx, edx
mov dl, byte [eax]
mov dword [esp + 0x10], edx
fild dword [esp + 0x10]
fmul qword [esp + 0x68]
fmul qword [esp + 0x98]
inc eax
mov dword [esp + 0x84], eax
fadd qword [0x571968]
sub esp, 8
fstp qword [esp]
call fcn.00502c3a
add esp, 8
call fcn.00502d0c
mov esi, dword [esp + 0x78]
mov byte [esp + 0x44], al
jmp 0x4b6425
xor ecx, ecx
mov cl, byte [eax]
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fmul qword [esp + 0x68]
jmp 0x4b63cb
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4b641d
fld qword [esp + 0x68]
fmul qword [esp + 0x98]
jmp 0x4b63d3
mov al, byte [esp + 0x74]
mov byte [esp + 0x44], al
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x44]
mov edi, dword [esp + 0x50]
test ecx, ecx
je 0x4b6447
mov byte [esp + 0x1c], 0xff
mov byte [esp + 0x38], 0xff
jmp 0x4b64cb
mov ecx, edx
mov ebx, edi
and ecx, 0xff
and ebx, 0xff
imul ecx, ebx
mov ebx, ecx
sar ebx, 8
lea ecx, [ebx + ecx + 0x80]
sar ecx, 8
sub al, cl
mov cl, byte [esp + 0x50]
add al, cl
mov ecx, dword [esp + 0x80]
test ecx, ecx
mov byte [esp + 0x1c], al
je 0x4b64c7
mov bl, byte [ecx]
mov eax, dword [esp + 0x1c]
inc ecx
mov byte [esp + 0xbc], bl
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0xbc]
and ecx, 0xff
and eax, 0xff
imul ecx, eax
mov eax, ecx
sar eax, 8
lea ecx, [eax + ecx + 0x80]
mov al, byte [esp + 0x1c]
sar ecx, 8
sub bl, cl
add bl, al
mov byte [esp + 0x38], bl
jmp 0x4b64cb
mov byte [esp + 0x38], al
mov eax, dword [esp + 0xa4]
xor bl, bl
xor cl, cl
cmp eax, 5
mov byte [esp + 0x54], bl
mov byte [esp + 0x3c], bl
mov byte [esp + 0x18], cl
ja case.default.0x4b64eb
jmp dword [eax*4 + 0x4b6eb4]
mov ebx, dword [esp + 0xb2]
mov ecx, edi
and ecx, 0xff
mov edx, 0xff
xor eax, eax
sub edx, ecx
mov al, byte [esi + 2]
and ebx, 0xff
imul eax, edx
imul ebx, ecx
add eax, ebx
mov ebx, eax
sar ebx, 8
lea ebx, [ebx + eax + 0x80]
xor eax, eax
mov al, byte [esi + 1]
imul eax, edx
mov edx, dword [esp + 0xb1]
and edx, 0xff
imul edx, ecx
add eax, edx
mov ecx, eax
sar ecx, 8
sar ebx, 8
lea eax, [ecx + eax + 0x80]
mov byte [esp + 0x54], bl
sar eax, 8
mov byte [esp + 0x3c], al
mov ecx, edi
mov eax, 0xff
and ecx, 0xff
xor edx, edx
mov dl, byte [esi]
sub eax, ecx
imul eax, edx
mov edx, dword [esp + 0xb0]
and edx, 0xff
imul edx, ecx
add eax, edx
mov ecx, eax
sar ecx, 8
lea ecx, [ecx + eax + 0x80]
sar ecx, 8
mov byte [esp + 0x18], cl
jmp case.default.0x4b64eb
mov al, byte [esp + 0x38]
test al, al
jne 0x4b65ae
xor cl, cl
mov byte [esp + 0x18], cl
jmp case.default.0x4b64eb
mov ecx, dword [esp + 0x38]
and edx, 0xff
and ecx, 0xff
mov dword [esp + 0x40], edx
mov eax, ecx
sub eax, edx
mov edx, dword [esp + 0x28]
and edx, 0xff
imul eax, edx
xor edx, edx
mov dl, byte [esi]
imul edx, dword [esp + 0x40]
add eax, edx
cdq
idiv ecx
mov cl, al
mov byte [esp + 0x18], cl
jmp case.default.0x4b64eb
mov al, byte [esp + 0x38]
test al, al
jne 0x4b6609
xor cl, cl
xor bl, bl
mov byte [esp + 0x18], cl
mov byte [esp + 0x3c], cl
mov byte [esp + 0x54], bl
jmp case.default.0x4b64eb
mov ebx, dword [esp + 0x38]
mov eax, dword [esp + 0x28]
and ebx, 0xff
mov edi, edx
and edi, 0xff
mov ecx, ebx
sub ecx, edi
and eax, 0xff
mov dword [esp + 0x48], ecx
imul eax, ecx
xor ecx, ecx
mov dword [esp + 0x40], edi
mov cl, byte [esi]
imul ecx, edi
add eax, ecx
cdq
idiv ebx
mov edx, dword [esp + 0x29]
and edx, 0xff
mov cl, al
xor eax, eax
mov al, byte [esi + 1]
mov byte [esp + 0x18], cl
imul eax, edi
mov edi, dword [esp + 0x48]
imul edx, edi
add eax, edx
cdq
idiv ebx
mov edx, dword [esp + 0x2a]
and edx, 0xff
imul edx, edi
mov byte [esp + 0x3c], al
xor eax, eax
mov al, byte [esi + 2]
imul eax, dword [esp + 0x40]
add eax, edx
cdq
idiv ebx
mov bl, al
mov byte [esp + 0x54], bl
jmp 0x4b684a
mov al, byte [esp + 0x38]
test al, al
jne 0x4b66a1
xor cl, cl
mov byte [esp + 0x18], cl
jmp case.default.0x4b64eb
mov ecx, dword [esp + 0x38]
and edx, 0xff
and ecx, 0xff
mov eax, edi
mov dword [esp + 0x40], edx
mov dword [esp + 0x10], ecx
and eax, 0xff
mov ecx, 0xff
xor edx, edx
sub ecx, eax
mov dl, byte [esi]
mov esi, dword [esp + 0x40]
imul ecx, edx
mov edx, dword [esp + 0xb0]
and edx, 0xff
imul edx, eax
add ecx, edx
mov eax, 0x80808081
imul ecx, dword [esp + 0x40]
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
mov eax, edx
shr ecx, 0x1f
add eax, ecx
mov ecx, dword [esp + 0x10]
mov edx, ecx
sub edx, esi
mov esi, dword [esp + 0x28]
and esi, 0xff
imul edx, esi
add eax, edx
cdq
idiv ecx
mov cl, al
mov byte [esp + 0x18], cl
jmp case.default.0x4b64eb
mov al, byte [esp + 0x38]
test al, al
je 0x4b65f4
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x50]
mov ebx, edx
and ecx, 0xff
and ebx, 0xff
mov dword [esp + 0x10], ecx
sub ecx, ebx
and edi, 0xff
mov dword [esp + 0x48], ecx
mov eax, 0xff
xor ecx, ecx
sub eax, edi
mov cl, byte [esi]
mov dword [esp + 0x40], eax
imul ecx, eax
mov eax, dword [esp + 0xb0]
and eax, 0xff
imul eax, edi
add ecx, eax
mov eax, 0x80808081
imul ecx, ebx
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
mov eax, edx
mov edx, dword [esp + 0x28]
and edx, 0xff
imul edx, dword [esp + 0x48]
shr ecx, 0x1f
add eax, ecx
xor ecx, ecx
add eax, edx
mov cl, byte [esi + 1]
cdq
imul ecx, dword [esp + 0x40]
idiv dword [esp + 0x10]
mov byte [esp + 0x18], al
mov eax, dword [esp + 0xb1]
and eax, 0xff
imul eax, edi
add ecx, eax
mov eax, 0x80808081
imul ecx, ebx
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
mov eax, edx
mov edx, dword [esp + 0x29]
and edx, 0xff
imul edx, dword [esp + 0x48]
shr ecx, 0x1f
add eax, ecx
xor ecx, ecx
add eax, edx
mov cl, byte [esi + 2]
cdq
imul ecx, dword [esp + 0x40]
idiv dword [esp + 0x10]
mov byte [esp + 0x3c], al
mov eax, dword [esp + 0xb2]
and eax, 0xff
imul eax, edi
add ecx, eax
mov eax, 0x80808081
imul ecx, ebx
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
mov eax, edx
mov edx, dword [esp + 0x2a]
and edx, 0xff
imul edx, dword [esp + 0x48]
shr ecx, 0x1f
add eax, ecx
add eax, edx
cdq
idiv dword [esp + 0x10]
mov bl, al
mov cl, byte [esp + 0x18]
mov byte [esp + 0x54], bl
mov edi, dword [esp + 0x50]
mov al, byte [esp + 0x1c]
test al, al
je 0x4b6920
mov eax, dword [esp + 0xa8]
dec eax
je 0x4b68de
sub eax, 2
jne 0x4b6920
mov eax, dword [esp + 0x1c]
mov edx, 0xff
and eax, 0xff
sub edx, eax
mov esi, eax
mov dword [esp + 0x10], edx
mov edx, edi
and edx, 0xff
shl esi, 8
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x2a]
sub esi, eax
mov eax, dword [esp + 0x54]
and eax, 0xff
and edx, 0xff
sub eax, edx
imul eax, dword [esp + 0x10]
imul eax, dword [esp + 0x48]
cdq
idiv esi
mov edx, dword [esp + 0x29]
and edx, 0xff
add bl, al
mov eax, dword [esp + 0x3c]
and eax, 0xff
sub eax, edx
imul eax, dword [esp + 0x10]
imul eax, dword [esp + 0x48]
cdq
idiv esi
add byte [esp + 0x3c], al
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
and esi, 0xff
and eax, 0xff
and edx, 0xff
sub eax, esi
mov esi, 0xff
sub esi, edx
and edi, 0xff
imul eax, esi
imul eax, edi
mov esi, edx
shl esi, 8
sub esi, edx
cdq
idiv esi
add cl, al
mov byte [esp + 0x18], cl
mov eax, dword [esp + 0x34]
mov edx, dword [eax]
mov eax, dword [edx + 0xc]
cmp eax, 3
ja case.default.0x4b6932
jmp dword [eax*4 + 0x4b6ecc]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x58]
push eax
mov eax, dword [esp + 0x38]
push ecx
push edx
mov ecx, dword [eax + 4]
mov ecx, dword [ecx + 0x38]
call fcn.004e37f0
test eax, eax
je 0x4b696d
mov eax, dword [esp + 0x88]
mov dl, byte [esp + 0x8c]
or byte [eax], dl
jmp 0x4b697f
mov eax, dword [esp + 0x88]
mov cl, byte [esp + 0x8c]
not cl
and byte [eax], cl
mov eax, dword [esp + 0x8c]
sar eax, 1
mov dword [esp + 0x8c], eax
jne case.default.0x4b6932
mov dword [esp + 0x8c], 0x80
jmp 0x4b6a09
mov edx, dword [esp + 0x88]
mov byte [edx], cl
jmp 0x4b6a09
mov eax, dword [esp + 0x88]
mov byte [eax], cl
mov eax, dword [esp + 0x88]
mov cl, byte [esp + 0x3c]
inc eax
mov dword [esp + 0x88], eax
mov byte [eax], cl
mov eax, dword [esp + 0x88]
inc eax
mov dword [esp + 0x88], eax
mov byte [eax], bl
jmp 0x4b6a09
mov edx, dword [esp + 0x88]
mov byte [edx], bl
mov eax, dword [esp + 0x88]
mov dl, byte [esp + 0x3c]
inc eax
mov dword [esp + 0x88], eax
mov byte [eax], dl
mov eax, dword [esp + 0x88]
inc eax
mov dword [esp + 0x88], eax
mov byte [eax], cl
inc dword [esp + 0x88]
mov eax, dword [esp + 0x90]
test eax, eax
je 0x4b6a28
mov cl, byte [esp + 0x1c]
mov byte [eax], cl
inc dword [esp + 0x90]
mov edi, dword [esp + 0x58]
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x34]
inc edi
push edx
mov ecx, esi
mov dword [esp + 0x5c], edi
call fcn.004b4050
mov eax, dword [esp + 0x14]
mov ecx, esi
push eax
call fcn.004b4080
jmp 0x4b6a5d
lea ecx, [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x38]
call fcn.004b49c0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x4c]
inc eax
inc edx
mov dword [esp + 0x4c], edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x20], eax
cmp eax, dword [edx + 8]
jl 0x4b6168
mov eax, dword [esp + 0x84]
mov esi, dword [esp + 0x78]
mov edx, dword [ebp + 0x10]
mov ecx, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
inc ecx
mov edi, dword [edx + 0xc]
inc ebx
cmp ecx, edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], ebx
jl 0x4b602b
mov ebx, dword [esp + 0x34]
jmp 0x4b6e6a
mov ecx, dword [eax + 0x4c]
mov edx, dword [eax + 0x48]
mov eax, dword [eax + 0x34]
push 0
push 0
push ecx
push edx
mov edx, dword [ebp + 8]
push 0
push eax
mov eax, dword [edi + 4]
mov ecx, esi
sub ecx, eax
lea eax, [esp + 0x70]
push ecx
mov ecx, dword [edi]
sub edx, ecx
mov ecx, ebx
push edx
push eax
call fcn.004b6ee0
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + 4]
sub esi, ecx
mov dword [esp + 0x30], 0
test eax, eax
mov dword [esp + 0x14], esi
jle 0x4b6e6a
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x14]
mov eax, esi
push edx
mov edx, dword [edi]
sub eax, edx
lea ecx, [esp + 0x5c]
push eax
push ecx
mov ecx, ebx
call fcn.004b48d0
mov ecx, dword [edi]
mov eax, esi
sub eax, ecx
mov dword [esp + 0x20], 0
mov dword [esp + 0x4c], eax
mov eax, dword [edi + 8]
test eax, eax
jle 0x4b6bc0
mov ecx, dword [esp + 0x24]
xor eax, eax
mov al, byte [ecx]
inc ecx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x24], ecx
xor esi, esi
jmp 0x4b6b51
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea ecx, [esi + edx]
mov edx, dword [edi + 8]
cmp ecx, edx
jge 0x4b6ba7
lea edx, [esp + 0x58]
mov ecx, ebx
test al, 0x80
push edx
je 0x4b6b89
call fcn.004b40b0
mov eax, dword [esp + 0x4c]
mov ecx, ebx
push eax
call fcn.004b4050
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, ebx
call fcn.004b4080
jmp 0x4b6b8e
call fcn.004b49c0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x4c]
shl eax, 1
inc esi
inc ecx
cmp esi, 8
mov dword [esp + 0x1c], eax
mov dword [esp + 0x4c], ecx
jl 0x4b6b4d
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + 8]
add eax, 8
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4b6b38
mov esi, dword [ebp + 8]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 0xc]
inc eax
inc edx
cmp eax, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], edx
jl 0x4b6b03
jmp 0x4b6e6a
test eax, eax
mov eax, dword [ebx + 4]
push 0
je 0x4b6d25
mov ecx, dword [eax + 0x4c]
mov edx, dword [eax + 0x48]
mov eax, dword [eax + 0x34]
push 1
push ecx
push edx
mov edx, dword [ebp + 8]
push 0
push eax
mov eax, dword [edi + 4]
mov ecx, esi
sub ecx, eax
lea eax, [esp + 0x70]
push ecx
mov ecx, dword [edi]
sub edx, ecx
mov ecx, ebx
push edx
push eax
call fcn.004b6ee0
mov ecx, dword [edi + 0x14]
mov eax, dword [edi + 0xc]
mov dword [esp + 0x24], ecx
mov ecx, dword [edi + 4]
sub esi, ecx
mov dword [esp + 0x30], 0
test eax, eax
mov dword [esp + 0x14], esi
jle 0x4b6e6a
mov edx, dword [esp + 0x14]
mov esi, dword [ebp + 8]
push edx
mov edx, dword [edi]
mov eax, esi
lea ecx, [esp + 0x5c]
sub eax, edx
push eax
push ecx
mov ecx, ebx
call fcn.004b48d0
mov ecx, dword [edi]
mov eax, dword [edi + 8]
sub esi, ecx
mov dword [esp + 0x20], 0
test eax, eax
jle 0x4b6d03
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 4]
push edx
push esi
mov ecx, dword [eax + 0x84]
call fcn.004bd210
test eax, eax
je 0x4b6cde
mov ecx, dword [esp + 0x24]
xor eax, eax
mov al, byte [ecx]
inc ecx
test eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x24], ecx
je 0x4b6cd0
fild dword [esp + 0x10]
lea ecx, [esp + 0x58]
push ecx
mov ecx, ebx
fmul qword [0x5734b0]
fstp qword [esp + 0x9c]
call fcn.004b40b0
push esi
mov ecx, ebx
call fcn.004b4050
mov edx, dword [esp + 0x14]
mov ecx, ebx
push edx
call fcn.004b4080
jmp 0x4b6cee
lea eax, [esp + 0x58]
mov ecx, ebx
push eax
call fcn.004b49c0
jmp 0x4b6cee
lea ecx, [esp + 0x58]
push ecx
mov ecx, ebx
call fcn.004b49c0
inc dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + 8]
inc eax
inc esi
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4b6c70
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 0xc]
inc eax
inc edx
cmp eax, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], edx
jl 0x4b6c3e
jmp 0x4b6e6a
mov edx, dword [eax + 0x4c]
mov ecx, dword [eax + 0x48]
push 0
push edx
mov edx, dword [eax + 0x34]
push ecx
mov ecx, dword [ebp + 8]
push 0
push edx
mov edx, dword [edi + 4]
mov eax, esi
sub eax, edx
lea edx, [esp + 0x70]
push eax
mov eax, dword [edi]
sub ecx, eax
push ecx
push edx
mov ecx, ebx
call fcn.004b6ee0
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 4]
mov dword [esp + 0x24], eax
mov eax, dword [edi + 0xc]
sub esi, ecx
mov dword [esp + 0x30], 0
test eax, eax
mov dword [esp + 0x14], esi
jle 0x4b6e6a
mov ecx, dword [esp + 0x14]
mov esi, dword [ebp + 8]
push ecx
mov ecx, dword [edi]
mov edx, esi
lea eax, [esp + 0x5c]
sub edx, ecx
mov ecx, ebx
push edx
push eax
call fcn.004b48d0
mov ecx, dword [edi]
mov eax, dword [edi + 8]
sub esi, ecx
mov dword [esp + 0x20], 0
test eax, eax
jle 0x4b6e4d
mov ecx, dword [esp + 0x24]
xor eax, eax
mov al, byte [ecx]
inc ecx
mov dword [esp + 0x1c], eax
xor eax, eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x44], eax
mov ecx, dword [esp + 0x20]
add eax, ecx
mov ecx, dword [edi + 8]
cmp eax, ecx
jge 0x4b6e37
mov edx, dword [esp + 0x14]
mov eax, dword [ebx + 4]
push edx
push esi
mov ecx, dword [eax + 0x84]
call fcn.004bd210
test eax, eax
je 0x4b6e12
test byte [esp + 0x1c], 0x80
je 0x4b6e0b
lea ecx, [esp + 0x58]
push ecx
mov ecx, ebx
call fcn.004b40b0
push esi
mov ecx, ebx
call fcn.004b4050
mov edx, dword [esp + 0x14]
mov ecx, ebx
push edx
call fcn.004b4080
jmp 0x4b6e1e
lea eax, [esp + 0x58]
push eax
jmp 0x4b6e17
lea ecx, [esp + 0x58]
push ecx
mov ecx, ebx
call fcn.004b49c0
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x44]
shl edx, 1
inc eax
inc esi
cmp eax, 8
mov dword [esp + 0x1c], edx
mov dword [esp + 0x44], eax
jl 0x4b6dbd
mov eax, dword [esp + 0x20]
mov ecx, dword [edi + 8]
add eax, 8
cmp eax, ecx
mov dword [esp + 0x20], eax
jl 0x4b6da6
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
mov ecx, dword [edi + 0xc]
inc eax
inc edx
cmp eax, ecx
mov dword [esp + 0x30], eax
mov dword [esp + 0x14], edx
jl 0x4b6d74
mov edx, dword [esp + 0xb8]
pop edi
mov dword [ebx + 0xb8], edx
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 0xc