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

Disassembly:
sub esp, 0x48
cmp dword [esp + 0x78], 0xffffffc4
push ebx
push ebp
push esi
push edi
mov dword [esp + 0x28], edx
mov dword [esp + 0x1c], ecx
jge 0x404b7d
push 0x3cb2
push str.D:Workspacewotlkunits_apidepsjson.hpp
push str.M_plus.e___kAlpha
call fcn.00428f50
add esp, 0xc
cmp dword [esp + 0x88], 0xffffffe0
jle 0x404b9e
push 0x3cb3
push str.D:Workspacewotlkunits_apidepsjson.hpp
push str.M_plus.e___kGamma
call fcn.00428f50
add esp, 0xc
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x68]
je 0x404bc2
push 0x3a9d
push str.D:Workspacewotlkunits_apidepsjson.hpp
push str.x.e__y.e
call fcn.00428f50
add esp, 0xc
mov edx, dword [esp + 0x84]
mov esi, dword [esp + 0x64]
cmp edx, esi
ja 0x404c02
jb 0x404be0
mov ecx, dword [esp + 0x80]
cmp ecx, dword [esp + 0x60]
jae 0x404c09
push 0x3a9e
push str.D:Workspacewotlkunits_apidepsjson.hpp
push str.x.f___y.f
call fcn.00428f50
mov edx, dword [esp + 0x90]
add esp, 0xc
mov esi, dword [esp + 0x64]
mov ecx, dword [esp + 0x80]
mov eax, ecx
sub eax, dword [esp + 0x60]
mov dword [esp + 0x20], eax
mov eax, edx
sbb eax, esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x88]
cmp eax, dword [esp + 0x78]
je 0x404c4d
push 0x3a9d
push str.D:Workspacewotlkunits_apidepsjson.hpp
push str.x.e__y.e
call fcn.00428f50
mov edx, dword [esp + 0x90]
add esp, 0xc
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x74]
cmp edx, eax
ja 0x404c86
jb 0x404c5d
cmp ecx, dword [esp + 0x70]
jae 0x404c86
push 0x3a9e
push str.D:Workspacewotlkunits_apidepsjson.hpp
push str.x.f___y.f
call fcn.00428f50
mov edx, dword [esp + 0x90]
add esp, 0xc
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x74]
movq xmm1, qword [esp + 0x80]
mov esi, ecx
sub esi, dword [esp + 0x70]
mov ebx, edx
mov dword [esp + 0x2c], esi
sbb ebx, eax
xor ebp, ebp
mov dword [esp + 0x18], ebx
xor esi, esi
mov ebx, dword [esp + 0x88]
neg ebx
mov eax, ebx
mov dword [esp + 0x30], ebx
bts ebp, eax
cmp eax, 0x20
cmovae esi, ebp
movd xmm0, ebx
xor ebp, esi
cmp eax, 0x40
mov eax, ebp
mov dword [esp + 0x3c], ebp
cmovae esi, ebp
add eax, 0xffffffff
psrlq xmm1, xmm0
mov ebp, esi
mov dword [esp + 0x38], esi
adc ebp, 0xffffffff
movd edi, xmm1
mov ebx, eax
mov dword [esp + 0x4c], ebp
and ebx, ecx
mov dword [esp + 0x48], eax
and ebp, edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebp
test edi, edi
jne 0x404f13
push 0x3cc8
push str.D:Workspacewotlkunits_apidepsjson.hpp
push str.p1___0
call fcn.00428f50
add esp, 0xc
mov esi, 1
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], esi
xor edx, edx
mov eax, edi
div esi
xor edx, edx
mov dword [esp + 0x34], eax
mov eax, edi
div esi
mov edi, edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0x40], edi
cmp edx, 9
jbe 0x404d5f
push 0x3cec
push str.D:Workspacewotlkunits_apidepsjson.hpp
push str.d___9
call fcn.00428f50
mov edx, dword [esp + 0x40]
add esp, 0xc
mov eax, dword [esp + 0x28]
add dl, 0x30
mov ecx, dword [esp + 0x1c]
movd xmm1, dword [esp + 0x40]
movd xmm0, dword [esp + 0x30]
mov eax, dword [eax]
psllq xmm1, xmm0
movq xmm0, qword [esp + 0x50]
paddq xmm1, xmm0
mov byte [eax + ecx], dl
inc eax
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x10]
movq qword [esp + 0x40], xmm1
dec ecx
mov dword [esp + 0x34], eax
mov dword [edx], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x10], ecx
cmp eax, dword [esp + 0x24]
jb 0x404ffb
ja 0x404dc1
mov edx, dword [esp + 0x20]
cmp dword [esp + 0x40], edx
jbe 0x404fff
mov eax, 0xcccccccd
mul esi
mov esi, edx
shr esi, 3
mov dword [esp + 0x14], esi
test ecx, ecx
jg 0x404d25
cmp ebp, dword [esp + 0x24]
ja 0x404dfe
jb 0x404de7
cmp ebx, dword [esp + 0x20]
ja 0x404dfe
push 0x3d43
push str.D:Workspacewotlkunits_apidepsjson.hpp
push str.p2___delta
call fcn.00428f50
add esp, 0xc
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp ebp, 0x19999999
jb 0x404e2d
ja 0x404e16
cmp ebx, 0x99999999
jbe 0x404e2d
push 0x3d4e
push str.D:Workspacewotlkunits_apidepsjson.hpp
push str.p2____std::numeric_limits_std::uint64_t_::max______10
call fcn.00428f50
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov eax, ebx
mov edi, ebp
shld edi, eax, 2
shl eax, 2
add ebx, eax
adc edi, ebp
shld edi, ebx, 1
add ebx, ebx
mov edx, edi
mov esi, ebx
mov eax, esi
call fcn.0043db50
mov ebx, dword [esp + 0x48]
mov ecx, eax
mov ebp, dword [esp + 0x4c]
and ebx, esi
and ebp, edi
mov dword [esp + 0x40], ecx
test edx, edx
jne 0x404e6c
cmp ecx, 9
jbe 0x404e87
push 0x3d57
push str.D:Workspacewotlkunits_apidepsjson.hpp
push str.d___9
call fcn.00428f50
mov ecx, dword [esp + 0x4c]
add esp, 0xc
mov edx, dword [esp + 0x28]
add cl, 0x30
mov esi, dword [esp + 0x1c]
inc dword [esp + 0x14]
mov edi, dword [esp + 0x2c]
mov eax, dword [edx]
mov byte [eax + esi], cl
inc eax
mov esi, dword [esp + 0x24]
mov ecx, esi
mov dword [edx], eax
mov edx, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov eax, edx
shld ecx, eax, 2
shl eax, 2
add edx, eax
mov eax, edi
adc esi, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x18], ecx
shld ecx, eax, 2
shld esi, edx, 1
shl eax, 2
add edx, edx
mov dword [esp + 0x24], esi
add edi, eax
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x18]
adc eax, ecx
shld eax, edi, 1
add edi, edi
mov dword [esp + 0x18], eax
mov dword [esp + 0x2c], edi
cmp ebp, esi
ja 0x404e04
jb 0x404f04
cmp ebx, edx
ja 0x404e04
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x14]
sub dword [eax], ecx
jmp 0x405043
cmp edi, 0x3b9aca00
jb 0x404f2d
mov esi, 0x3b9aca00
mov dword [esp + 0x10], 0xa
jmp 0x404d21
cmp edi, 0x5f5e100
jb 0x404f47
mov esi, 0x5f5e100
mov dword [esp + 0x10], 9
jmp 0x404d21
cmp edi, 0x989680
jb 0x404f61
mov esi, 0x989680
mov dword [esp + 0x10], 8
jmp 0x404d21
cmp edi, 0xf4240
jb 0x404f7b
mov esi, 0xf4240
mov dword [esp + 0x10], 7
jmp 0x404d21
cmp edi, 0x186a0
jb 0x404f95
mov esi, 0x186a0
mov dword [esp + 0x10], 6
jmp 0x404d21
cmp edi, 0x2710
jb 0x404faf
mov esi, 0x2710
mov dword [esp + 0x10], 5
jmp 0x404d21
cmp edi, 0x3e8
jb 0x404fc9
mov esi, 0x3e8
mov dword [esp + 0x10], 4
jmp 0x404d21
cmp edi, 0x64
jb 0x404fe0
mov esi, 0x64
mov dword [esp + 0x10], 3
jmp 0x404d21
cmp edi, 0xa
jb 0x404d18
mov esi, 0xa
mov dword [esp + 0x10], 2
jmp 0x404d21
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x5c]
movd xmm1, dword [esp + 0x14]
movd xmm0, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
add dword [eax], ecx
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x24]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x44]
psllq xmm1, xmm0
mov dword [esp + 0x1c], eax
movq qword [esp + 0x50], xmm1
mov eax, dword [esp + 0x54]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x3c], eax
push dword [esp + 0x38]
mov ecx, dword [esp + 0x1c]
push dword [esp + 0x40]
mov eax, dword [esp + 0x24]
push ebp
push ebx
push esi
push edx
mov edx, dword [esp + 0x4c]
push ecx
push edi
mov ecx, eax
call fcn.004049d0
add esp, 0x20
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret