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

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0x5c
mov ebx, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov eax, dword [ebx + 0x58]
cmp eax, 1
jle 0x4ddd12
lea edx, [ebx + 0x1e0]
lea esi, [esp + 0x48]
mov dword [esp + 0x20], edx
mov ebp, edx
jmp 0x4ddb60
mov edx, 1
mov eax, ebx
call fcn.004dafe0
cmp eax, 0xfffffffe
je 0x4ddd08
test eax, eax
jle 0x4ddd00
mov eax, dword [ebx + 0x58]
cmp eax, 4
jne 0x4ddb40
mov dword [esp + 4], esi
mov dword [esp], ebp
call fcn.004e1340
cmp eax, 0
je 0x4ddb40
mov ebp, eax
jle 0x4ddd00
mov dword [esp + 4], 0xffffffff
mov dword [esp], ebx
call fcn.004dd700
mov edx, dword [esp + 0x80]
mov eax, dword [eax + 4]
imul edx, eax
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x34], edx
mov edx, eax
sar edx, 0x1f
idiv dword [esp + 0x34]
cmp eax, ebp
jge 0x4ddbbe
test eax, eax
jle 0x4ddd12
mov ebp, eax
cmp dword [esp + 0x80], 1
je 0x4ddd19
mov eax, dword [esp + 0x84]
test eax, eax
je 0x4ddea5
cmp dword [esp + 0x7c], 0
je 0x4ddde1
mov dword [esp + 0x1c], 0
fnstcw word [esp + 0x44]
mov dx, word [esp + 0x44]
or dx, 0xf3ff
mov word [esp + 0x46], dx
fldcw word [esp + 0x46]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x44]
add edx, edx
mov word [esp + 0x3a], ax
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], 0
fld dword [0x70dfd0]
mov dword [esp + 0x28], ebp
mov dword [esp + 0x3c], ebx
nop
mov ebp, dword [esp + 0x30]
test ebp, ebp
jle 0x4ddc96
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x2c]
shl ebp, 2
add esi, edi
xor eax, eax
mov ebx, dword [esp + 0x48]
nop
lea esi, [esi]
mov edx, dword [ebx + eax]
fld dword [edx + ebp]
fmul st(1)
fist dword [esp + 0x4c]
fstp st(0)
mov edx, dword [esp + 0x4c]
cmp edx, 0xffff8000
jge 0x4ddc6f
mov edx, 0xffff8000
cmp edx, 0x7fff
jle 0x4ddc7c
mov edx, 0x7fff
mov ecx, dword [esp + 0x1c]
add eax, 4
add edx, ecx
mov ecx, edx
mov byte [edi + 1], dl
sar ecx, 8
mov byte [edi], cl
add edi, 2
cmp esi, edi
jne 0x4ddc50
mov eax, dword [esp + 0x24]
inc eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x28]
cmp dword [esp + 0x24], eax
jl 0x4ddc30
fstp st(0)
mov dx, word [esp + 0x3a]
mov ebp, dword [esp + 0x28]
mov ebx, dword [esp + 0x3c]
mov word [esp + 0x46], dx
fldcw word [esp + 0x46]
mov eax, dword [esp + 0x20]
mov dword [esp + 4], ebp
mov dword [esp], eax
call fcn.004e13c0
mov edx, ebp
sar edx, 0x1f
add dword [ebx + 0x50], ebp
adc dword [ebx + 0x54], edx
mov esi, dword [esp + 0x88]
test esi, esi
je 0x4ddcf3
mov edx, dword [esp + 0x88]
mov eax, dword [ebx + 0x60]
mov dword [edx], eax
mov eax, dword [esp + 0x34]
imul eax, ebp
lea esi, [esi]
add esp, 0x5c
pop ebx
pop esi
pop edi
pop ebp
ret
add esp, 0x5c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, 0xffffff7d
jmp 0x4ddd00
cmp dword [esp + 0x84], 1
sbb eax, eax
and eax, 0x80
fnstcw word [esp + 0x44]
mov dx, word [esp + 0x44]
or dx, 0xf3ff
mov word [esp + 0x46], dx
fldcw word [esp + 0x46]
mov edx, dword [esp + 0x44]
mov dword [esp + 0x24], ebp
mov word [esp + 0x28], dx
mov dword [esp + 0x1c], 0
fld dword [0x70dfcc]
mov dword [esp + 0x2c], ebx
mov ebp, eax
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x4dddb2
mov esi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x30]
shl esi, 2
add ebx, edi
xor edx, edx
mov ecx, dword [esp + 0x48]
nop
lea esi, [esi]
mov eax, dword [ecx + edx]
fld dword [eax + esi]
fmul st(1)
fist dword [esp + 0x4c]
fstp st(0)
mov eax, dword [esp + 0x4c]
cmp eax, 0xffffff80
jge 0x4ddd9c
mov eax, 0xffffff80
cmp eax, 0x7f
jle 0x4ddda6
mov eax, 0x7f
add eax, ebp
add edx, 4
mov byte [edi], al
inc edi
cmp edi, ebx
jne 0x4ddd80
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x1c], eax
jl 0x4ddd60
fstp st(0)
mov edx, dword [esp + 0x28]
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x2c]
mov word [esp + 0x40], dx
fldcw word [esp + 0x40]
jmp 0x4ddcc1
fnstcw word [esp + 0x44]
mov dx, word [esp + 0x44]
or dx, 0xf3ff
mov word [esp + 0x46], dx
fldcw word [esp + 0x46]
mov eax, dword [esp + 0x44]
mov word [esp + 0x2c], ax
mov eax, dword [esp + 0x30]
test eax, eax
jle 0x4dde93
mov esi, dword [esp + 0x30]
mov eax, edi
add esi, esi
mov dword [esp + 0x1c], edi
add eax, esi
mov edi, dword [esp + 0x48]
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], ebx
fld dword [0x70dfd0]
mov edi, eax
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
xor eax, eax
mov ebx, dword [edx + edi]
fld dword [ebx + eax*4]
fmul st(1)
fist dword [esp + 0x4c]
fstp st(0)
mov edx, dword [esp + 0x4c]
cmp edx, 0xffff8000
jge 0x4dde5e
mov edx, 0xffff8000
cmp edx, 0x7fff
jle 0x4dde6b
mov edx, 0x7fff
inc eax
mov word [ecx], dx
add ecx, esi
cmp eax, ebp
jl 0x4dde42
mov eax, dword [esp + 0x1c]
add edi, 4
add eax, 2
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
cmp dword [esp + 0x1c], eax
jne 0x4dde35
fstp st(0)
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
mov word [esp + 0x42], dx
fldcw word [esp + 0x42]
jmp 0x4ddcc1
cmp dword [esp + 0x7c], 0
je 0x4ddec0
mov dword [esp + 0x1c], 0x8000
jmp 0x4ddbee
fnstcw word [esp + 0x44]
mov dx, word [esp + 0x44]
or dx, 0xf3ff
mov word [esp + 0x46], dx
fldcw word [esp + 0x46]
mov edx, dword [esp + 0x44]
mov esi, dword [esp + 0x30]
mov word [esp + 0x2c], dx
test esi, esi
jle 0x4ddf79
mov esi, dword [esp + 0x30]
mov eax, edi
add esi, esi
mov dword [esp + 0x1c], 0
fld dword [0x70dfd0]
lea edx, [edi + esi]
mov edi, dword [esp + 0x48]
mov dword [esp + 0x28], edi
mov dword [esp + 0x24], edx
mov dword [esp + 0x30], ebx
mov edi, eax
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov ecx, edi
mov ebx, dword [edx + eax]
xor eax, eax
fld dword [ebx + eax*4]
fmul st(1)
fist dword [esp + 0x4c]
fstp st(0)
mov edx, dword [esp + 0x4c]
cmp edx, 0xffff8000
jge 0x4ddf42
mov edx, 0xffff8000
cmp edx, 0x7fff
jle 0x4ddf4f
mov edx, 0x7fff
sub edx, 0x8000
inc eax
mov word [ecx], dx
add ecx, esi
cmp eax, ebp
jl 0x4ddf26
mov ebx, dword [esp + 0x1c]
add edi, 2
add ebx, 4
cmp edi, dword [esp + 0x24]
mov dword [esp + 0x1c], ebx
jne 0x4ddf17
fstp st(0)
mov ebx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
mov word [esp + 0x44], ax
fldcw word [esp + 0x44]
jmp 0x4ddcc1