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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov esi, dword [esp + 0x78]
fld qword [esp + 0x70]
mov eax, esi
mov byte [esp + 0x2b], al
movzx eax, word [ecx + 0x24]
add ax, word [ecx + 0x26]
add ax, word [ecx + 0x28]
test ax, ax
mov ebp, eax
jle 0x61ac77a0
fdiv dword [0x61c093dc]
mov ebx, ecx
fstp qword [esp]
call sym._uprv_floor_53
mov eax, esi
test al, al
je 0x61ac7735
movzx eax, word [ebx + 0x24]
mov word [esp + 0x18], ax
mov esi, dword [ebx + 0x3c]
lea eax, [ebp - 1]
mov ebp, eax
sub bp, word [esp + 0x18]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x80]
and esi, 3
mov dword [esp + 0x3c], esi
mov esi, dword [esp + 0x80]
and esi, 0xc
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x7c]
and esi, 3
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x7c]
and esi, 0xc
mov dword [esp + 0x40], esi
jmp 0x61ac7710
movzx edx, word [ebx + 0x26]
cmp bp, dx
jl 0x61ac7780
mov ecx, dword [ebx + 0x34]
mov edi, ebp
sub edi, edx
movsx edx, di
mov esi, dword [ecx + edx*8 + 4]
mov edi, dword [ecx + edx*8]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
cmp byte [esp + 0x2b], 0
je 0x61ac76f0
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
add esi, 0xfffeae80
adc edi, 0xffffffff
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], edi
fild qword [esp + 0x20]
fxch st(1)
fucomi st(1)
fstp st(1)
jb 0x61ac76f0
lea edx, [eax - 1]
cmp dx, 0xffff
je 0x61ac7850
mov edi, dword [ebx + 0x40]
movsx edx, dx
movzx esi, byte [edi + edx]
mov dword [esp + 0x20], edi
mov edi, dword [esp + 0x2c]
mov edx, dword [edi + esi*8 + 4]
mov ecx, dword [edi + esi*8]
add ecx, edx
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x20]
movsx esi, ax
test edx, edx
movzx esi, byte [ecx + esi]
setne byte [esp + 0x37]
mov ecx, dword [edi + esi*8 + 4]
mov edx, dword [edi + esi*8]
add edx, ecx
test ecx, ecx
setne byte [esp + 0x20]
movzx ecx, byte [esp + 0x20]
mov esi, edx
movzx edx, byte [esp + 0x37]
xor ecx, 1
and ecx, edx
xor edx, 1
and dl, byte [esp + 0x20]
cmp esi, dword [esp + 0x30]
js 0x61ac7831
cmp dword [esp + 0x38], 1
je 0x61ac7892
cmp dword [esp + 0x38], 3
je 0x61ac78f0
cmp dword [esp + 0x40], 0xc
je 0x61ac77e0
mov edi, esi
sar edi, 0x1f
add dword [esp + 0x10], esi
adc dword [esp + 0x14], edi
nop
lea esi, [esi]
fild qword [esp + 0x10]
fxch st(1)
fucomi st(1)
fstp st(1)
jae 0x61ac7805
sub eax, 1
sub ebp, 1
cmp ax, 0xffff
je 0x61ac78b0
cmp word [esp + 0x18], ax
jle 0x61ac75f0
mov edx, dword [ebx + 0x2c]
movsx ecx, ax
mov edi, dword [edx + ecx*8 + 4]
mov esi, dword [edx + ecx*8]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
jmp 0x61ac7616
movzx edx, word [ebx + 0x24]
test dx, dx
jg 0x61ac7870
movzx esi, word [ebx + 0x26]
mov eax, edx
neg eax
cmp ax, si
jl 0x61ac7910
mov ecx, dword [ebx + 0x34]
sub eax, esi
cwde
mov esi, dword [ecx + eax*8 + 4]
mov edi, dword [ecx + eax*8]
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
fild qword [esp + 0x18]
fucompi st(1)
ja 0x61ac7905
mov word [esp + 0x18], dx
jmp 0x61ac759f
mov ecx, dword [ebx + 0x30]
movsx edx, bp
mov edx, dword [ecx + edx*4]
mov dword [esp + 0x10], edx
sar edx, 0x1f
mov dword [esp + 0x14], edx
jmp 0x61ac7616
fstp st(0)
mov eax, dword [ecx + 0x3c]
imul edx, dword [eax], 0x3e8
mov ebx, dword [esp + 0x84]
mov dword [ebx], edx
mov ebx, dword [esp + 0x88]
imul eax, dword [eax + 4], 0x3e8
mov dword [ebx], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
test dl, dl
jne 0x61ac76db
test cl, cl
je 0x61ac783f
lea esi, [esi]
mov esi, dword [esp + 0x30]
mov edi, esi
sar edi, 0x1f
add dword [esp + 0x10], esi
adc dword [esp + 0x14], edi
fild qword [esp + 0x10]
fxch st(1)
fucomi st(1)
fstp st(1)
jb 0x61ac7700
fstp st(0)
jmp 0x61ac7807
fstp st(0)
cwde
add eax, dword [ebx + 0x40]
mov ebx, dword [esp + 0x2c]
movzx edx, byte [eax]
imul edx, dword [ebx + edx*8], 0x3e8
mov ebx, dword [esp + 0x84]
mov dword [ebx], edx
movzx eax, byte [eax]
lea eax, [eax*8 + 4]
jmp 0x61ac78ca
cmp dword [esp + 0x3c], 1
je 0x61ac7880
cmp dword [esp + 0x3c], 3
je 0x61ac77d0
cmp dword [esp + 0x44], 4
jne 0x61ac76db
jmp 0x61ac77e0
mov esi, dword [esp + 0x2c]
mov ecx, dword [ebx + 0x40]
mov edx, dword [esi + 4]
mov edi, dword [esi]
add edi, edx
mov dword [esp + 0x30], edi
mov edi, esi
jmp 0x61ac767a
mov eax, dword [ebx + 0x2c]
mov esi, dword [eax + 4]
mov edi, dword [eax]
jmp 0x61ac7760
test cl, cl
jne 0x61ac76db
test dl, dl
jne 0x61ac77e0
jmp 0x61ac783f
test cl, cl
jne 0x61ac77e0
test dl, dl
jne 0x61ac76db
jmp 0x61ac76d0
fstp st(0)
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x84]
imul eax, dword [eax], 0x3e8
mov dword [ebx], eax
mov eax, 4
mov ebx, dword [esp + 0x2c]
imul eax, dword [ebx + eax], 0x3e8
mov ebx, dword [esp + 0x88]
mov dword [ebx], eax
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret 0x1c
test dl, dl
jne 0x61ac77e0
test cl, cl
jne 0x61ac76db
jmp 0x61ac76d0
fstp st(0)
mov eax, dword [ebx + 0x3c]
jmp 0x61ac77a5
mov ecx, dword [ebx + 0x30]
cwde
mov esi, dword [ecx + eax*4]
mov edi, esi
sar edi, 0x1f
jmp 0x61ac7760