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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x468
mov esi, edx
mov edx, dword [ebp + 8]
mov dword [esp + 0x14], ecx
movsd xmm1, qword [esi + 8]
movsd xmm0, qword [esi]
mov ecx, dword [edx + 0x88]
lea eax, [edx + 0x8c]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], ecx
mov byte [esp + 0x50], 0
movsd qword [esp + 0x34], xmm1
movsd xmm1, qword [esi + 0x10]
movsd qword [esp + 0x2c], xmm0
movsd qword [esp + 0x3c], xmm1
mov dword [esp + 0x1c], 0
mov eax, dword [edx + 0x90]
mov edi, dword [eax + 0x84]
mov eax, dword [eax + 0x80]
mov dword [esp], eax
mov eax, dword [edx + 0x90]
mov ebx, dword [eax + 0x84]
mov eax, dword [eax + 0x80]
mov edx, dword [edx + 0x98]
mov dword [esp + 4], edi
mov ecx, ebx
sub ecx, eax
cmp ecx, edx
jge 0x430c42
mov ecx, dword [ebp + 8]
dec edx
lea edi, [esp + 0x1c]
and edx, ebx
inc ebx
mov eax, dword [ecx + 0x94]
mov dword [eax + edx*8], 0x4311a0
mov dword [eax + edx*8 + 4], edi
mov edx, dword [ecx + 0x90]
mov dword [edx + 0x84], ebx
movzx ebx, byte [ebp + 0xc]
mov edi, dword [esp + 4]
mov ecx, dword [ecx + 0x8c]
sub edi, dword [esp]
nop word [eax + eax]
mov eax, dword [ecx + 0xf8]
test eax, 0x10000
jne 0x43055a
mov edx, eax
or edx, 0x10000
lock cmpxchg dword [ecx + 0xf8], edx
jne 0x430530
mov eax, edx
and eax, 0xff
jne 0x430565
jmp 0x430578
mov edx, eax
mov eax, edx
and eax, 0xff
je 0x430578
test edi, edi
jg 0x430d1e
movzx edx, dh
cmp edx, eax
je 0x430d1e
mov eax, dword [esi + 0x18]
mov edi, dword [esi + 0x1c]
lea ecx, [esp + 0x54]
mov edx, dword [eax]
movzx eax, bl
push dword [esi + 0x28]
push dword [esi + 0x24]
push dword [esi + 0x20]
push dword [edi + 4]
push dword [edi]
mov dword [esp + 0x2c], eax
push eax
call fcn.0042eb60
add esp, 0x18
mov eax, dword [esp + 0x48]
cmp eax, 3
je 0x430c07
mov eax, dword [ebp + 8]
mov edx, dword [eax + 0x90]
mov ecx, dword [edx + 0x84]
mov esi, dword [edx + 0x80]
mov eax, ecx
sub eax, esi
test eax, eax
jle 0x430710
mov edi, dword [ebp + 8]
cmp byte [edi + 0x9c], 0
je 0x430670
lea eax, [ecx - 1]
mov dword [edx + 0x84], eax
mov esi, eax
mfence
mov edx, dword [edi + 0x90]
mov ebx, dword [edx + 0x80]
sub esi, ebx
js 0x430692
mov dword [esp + 0x10], edx
mov edx, dword [edi + 0x94]
mov dword [esp + 0xc], esi
mov esi, dword [edi + 0x98]
mov dword [esp + 4], edx
lea edx, [esi - 1]
mov edi, dword [esp + 4]
and edx, eax
cmp eax, ebx
mov edi, dword [edi + edx*8]
mov dword [esp + 8], edi
mov edi, dword [esp + 4]
mov edx, dword [edi + edx*8 + 4]
mov dword [esp], edx
jne 0x4306ce
mov edx, dword [esp + 0x10]
lock cmpxchg dword [edx + 0x80], ecx
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x90]
mov dword [eax + 0x84], ecx
mov esi, dword [esp + 8]
je 0x430700
jmp 0x430710
mov esi, 1
lock xadd dword [edx + 0x80], esi
cmp esi, ecx
js 0x43069a
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x90]
mov dword [eax + 0x80], esi
jmp 0x430710
mov dword [edx + 0x84], ecx
jmp 0x430710
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x94]
mov edx, dword [edx + 0x98]
lea edi, [edx - 1]
and edi, esi
test edx, edx
mov esi, dword [ecx + edi*8]
mov ecx, dword [ecx + edi*8 + 4]
mov dword [esp], ecx
lea ecx, [edx + 3]
cmovns ecx, edx
cmp edx, 0x41
jb 0x430700
sar ecx, 2
cmp eax, ecx
jg 0x430700
jmp 0x4306ea
lea eax, [esi + 3]
test esi, esi
cmovns eax, esi
cmp esi, 0x41
jb 0x4306fc
sar eax, 2
mov edx, esi
mov esi, dword [esp + 8]
cmp dword [esp + 0xc], eax
jge 0x430700
mov eax, dword [ebp + 8]
shr edx, 1
lea ecx, [eax + 0x90]
call fcn.004251e0
jmp 0x430700
mov esi, dword [esp + 8]
test esi, esi
jne 0x430bbf
nop dword [eax + eax]
jmp 0x430729
mov ecx, ebx
call fcn.00420040
nop dword [eax]
cmp edi, 2
jne 0x430bb0
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0xa0]
mov esi, dword [edi + 0x80]
call fcn.0042cc70
test eax, eax
je 0x430760
mov eax, dword [eax]
cmp dword [eax + 0x40c], 0
jne 0x430869
jmp 0x43086c
mov eax, dword [0x4af038]
cmp eax, 3
jne 0x430981
mov ebx, dword [0x4af03c]
lock inc dword [ebx]
jle 0x430d4e
mov eax, 0xfffffc00
nop word cs:[eax + eax]
nop dword [eax]
movsd xmm0, qword [0x4a7d00]
movsd xmm1, qword [0x4a7cf8]
movsd qword [esp + eax + 0x468], xmm0
movsd qword [esp + eax + 0x460], xmm1
add eax, 0x10
jne 0x430790
mov dword [esp], esi
mov dword [esp + 4], edi
xor ecx, ecx
mov edx, 0x4c0
movzx eax, byte [0x4af0d4]
call fcn.0042bb70
test eax, eax
je 0x430d4e
mov esi, eax
and esi, 0xffffffc0
mov dword [esi + 0x3c], eax
lea edi, [esi + 0x40]
lea eax, [esi + 0x48]
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], ebx
push 0x400
lea ecx, [esp + 0x64]
push ecx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
movaps xmm0, xmmword [0x457b40]
movups xmmword [esi + 0x448], xmm0
mov dword [esi + 0x480], 0
mov eax, dword [ebx + 0x100]
mov dword [esi + 0x40], eax
lock cmpxchg dword [ebx + 0x100], edi
je 0x43083c
nop
mov dword [edi], eax
lock cmpxchg dword [ebx + 0x100], edi
jne 0x430830
mov ecx, dword [edi + 0x410]
mov eax, dword [edi + 0x40c]
mov ebx, dword [esp + 4]
lea edx, [ecx - 1]
xor ecx, 1
or ecx, eax
mov dword [edi + 0x410], edx
je 0x43099a
mov esi, dword [esp]
test eax, eax
mov edi, ebx
je 0x43086c
mfence
call fcn.0042cc70
test eax, eax
je 0x4309c0
mov ecx, dword [eax]
mov dword [esp + 0x60], ecx
mov eax, dword [ecx + 0x40c]
cmp eax, 0xffffffff
je 0x430d4e
lea edx, [eax + 1]
test eax, eax
mov dword [ecx + 0x40c], edx
jne 0x4308c8
mov eax, dword [ecx + 4]
mov edx, dword [eax + 0xc0]
xor eax, eax
or edx, 1
lock cmpxchg dword [ecx + 0x440], edx
mov eax, dword [ecx + 0x414]
lea edx, [eax + 1]
test al, 0x7f
mov dword [ecx + 0x414], edx
je 0x430b7e
mov ebx, dword [esp + 0x60]
mov eax, dword [edi + 0x84]
sub eax, esi
test eax, eax
jle 0x430b1e
mov dword [esp + 4], ebx
mov ebx, edi
mov eax, dword [edi + 0x40]
mov ecx, eax
and ecx, 0xfffffffc
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
dec ecx
and ecx, esi
mov edi, dword [edx + ecx*8]
mov dword [esp + 8], edi
mov edi, 2
mov ecx, dword [edx + ecx*8 + 4]
mov dword [esp], ecx
mov ecx, dword [ebx + 0x40]
cmp ecx, eax
jne 0x430970
lea ecx, [esi + 1]
mov eax, esi
lock cmpxchg dword [ebx + 0x80], ecx
mov ebx, dword [esp + 4]
jne 0x430974
test ebx, ebx
je 0x430beb
mov eax, dword [ebx + 0x40c]
mov esi, dword [esp + 8]
lea ecx, [eax - 1]
cmp eax, 1
mov dword [ebx + 0x40c], ecx
jne 0x430bbf
mov dword [ebx + 0x440], 0
mov edi, 1
mov dword [esp + 0xc], esi
cmp dword [ebx + 0x410], 0
mov eax, dword [esp]
mov dword [esp + 0x10], eax
je 0x430712
jmp 0x430bbf
mov ebx, dword [esp + 4]
test ebx, ebx
jne 0x430b28
jmp 0x430720
call fcn.00420a90
mov ebx, dword [0x4af03c]
lock inc dword [ebx]
jg 0x43077d
jmp 0x430d4e
mov ecx, edi
call fcn.00420040
mov esi, dword [esp]
mov edi, ebx
call fcn.0042cc70
test eax, eax
jne 0x430879
nop word cs:[eax + eax]
nop dword [eax]
mov eax, dword [0x4af038]
cmp eax, 3
jne 0x430b5c
mov ebx, dword [0x4af03c]
lock inc dword [ebx]
jle 0x430d4e
mov eax, 0xfffffc00
nop word cs:[eax + eax]
nop dword [eax]
movsd xmm0, qword [0x4a7d00]
movsd xmm1, qword [0x4a7cf8]
movsd qword [esp + eax + 0x468], xmm0
movsd qword [esp + eax + 0x460], xmm1
add eax, 0x10
jne 0x4309f0
mov dword [esp], esi
mov dword [esp + 4], edi
xor ecx, ecx
mov edx, 0x4c0
movzx eax, byte [0x4af0d4]
call fcn.0042bb70
test eax, eax
je 0x430d4e
mov esi, eax
and esi, 0xffffffc0
mov dword [esi + 0x3c], eax
lea edi, [esi + 0x40]
lea eax, [esi + 0x48]
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], ebx
push 0x400
lea ecx, [esp + 0x64]
push ecx
push eax
call sub.api_ms_win_crt_private_l1_1_0.dll_memcpy
add esp, 0xc
movaps xmm0, xmmword [0x457b40]
movups xmmword [esi + 0x448], xmm0
mov dword [esi + 0x480], 0
mov eax, dword [ebx + 0x100]
mov dword [esi + 0x40], eax
lock cmpxchg dword [ebx + 0x100], edi
je 0x430a9c
nop
mov dword [edi], eax
lock cmpxchg dword [ebx + 0x100], edi
jne 0x430a90
mov dword [esp + 0x60], edi
mov eax, dword [edi + 0x40c]
cmp eax, 0xffffffff
je 0x430d4e
lea ecx, [eax + 1]
test eax, eax
mov dword [edi + 0x40c], ecx
jne 0x430ae9
mov eax, dword [edi + 4]
mov ecx, dword [eax + 0xc0]
xor eax, eax
or ecx, 1
lock cmpxchg dword [edi + 0x440], ecx
mov eax, dword [edi + 0x414]
lea ecx, [eax + 1]
test al, 0x7f
mov dword [edi + 0x414], ecx
je 0x430b92
mov eax, dword [edi + 0x410]
mov ebx, dword [esp + 0x60]
lea ecx, [eax - 1]
xor eax, 1
mov dword [edi + 0x410], ecx
or eax, dword [edi + 0x40c]
je 0x430b75
mov esi, dword [esp]
mov edi, dword [esp + 4]
mov eax, dword [edi + 0x84]
sub eax, esi
test eax, eax
jg 0x4308dc
xor edi, edi
test ebx, ebx
je 0x430720
mov eax, dword [ebx + 0x40c]
lea ecx, [eax - 1]
cmp eax, 1
mov dword [ebx + 0x40c], ecx
jne 0x430720
mov dword [ebx + 0x440], 0
cmp dword [ebx + 0x410], 0
jne 0x430720
jmp 0x430712
call fcn.00420a90
mov ebx, dword [0x4af03c]
lock inc dword [ebx]
jg 0x4309dd
jmp 0x430d4e
mov ecx, edi
call fcn.00420040
jmp 0x430b07
mov ecx, dword [ecx + 4]
lea edx, [esp + 0x60]
add ecx, 0x40
call fcn.00420230
jmp 0x4308c8
mov ecx, dword [edi + 4]
lea edx, [esp + 0x60]
add ecx, 0x40
call fcn.00420230
jmp 0x430ae9
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0xc]
test edi, edi
mov dword [esp], eax
je 0x430bfa
lea eax, [esp + 0x1c]
cmp eax, dword [esp]
jne 0x430bd4
cmp esi, 0x4311a0
je 0x430c5d
push dword [esp]
call esi
add esp, 4
mov eax, dword [esp + 0x48]
cmp eax, 3
jne 0x4305af
jmp 0x430c07
mov esi, dword [esp + 8]
lea eax, [esp + 0x1c]
cmp eax, dword [esp]
je 0x430bc8
jmp 0x430bd4
mov eax, dword [esp + 0x48]
cmp eax, 3
jne 0x430d33
mov eax, dword [esp + 0x1c]
cmp eax, 1
jne 0x430d4c
movsd xmm0, qword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x14]
movsd xmm1, qword [esp + 0x54]
mov dword [edx + 8], ecx
movsd qword [edx], xmm1
movlps qword [edx + 0xc], xmm0
mov dword [edx + 0x14], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edi, dword [ebp + 8]
add edx, edx
lea ecx, [edi + 0x90]
call fcn.004251e0
mov edx, dword [edi + 0x98]
jmp 0x4304ee
movsd xmm2, qword [esp + 0x4c]
movsd xmm1, qword [esp + 0x44]
movsd xmm0, qword [esp + 0x2c]
movsd qword [esp + 0x90], xmm2
movsd qword [esp + 0x88], xmm1
movsd xmm2, qword [esp + 0x3c]
movsd xmm1, qword [esp + 0x34]
movsd qword [esp + 0x70], xmm0
movsd qword [esp + 0x80], xmm2
movsd qword [esp + 0x78], xmm1
movsd xmm2, qword [esp + 0x1c]
movsd xmm1, qword [esp + 0x24]
movsd qword [esp + 0x68], xmm1
movsd qword [esp + 0x60], xmm2
mov eax, dword [esp + 0x70]
test eax, eax
je 0x430d4e
mov ecx, dword [esp + 0x74]
mov edx, dword [eax]
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x78]
sub edx, dword [ecx]
lea ecx, [edi + 0xc]
push dword [esp + 0x84]
push dword [esp + 0x84]
push dword [esp + 0x84]
push dword [esi + 4]
push dword [esi]
push dword [esp + 0x2c]
call fcn.0042eb60
add esp, 0x18
lea ecx, [esp + 0x60]
call fcn.00431340
mov eax, dword [esp + 0x5c]
movsd xmm0, qword [esp + 0x54]
mov dword [edi + 8], eax
movsd qword [edi], xmm0
jmp 0x430c3a
add ecx, 0xec
mov edx, 1
call fcn.00424b30
jmp 0x430578
mov ecx, dword [ebp + 8]
lea edx, [esp + 0x48]
call fcn.00424310
mov eax, dword [esp + 0x1c]
cmp eax, 1
je 0x430c14
test eax, eax
ud2