Function at 0x417980
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6330fe
mov eax, dword fs:[0]
push eax
sub esp, 0xd54
mov eax, dword [0x71de04]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0xd54], edi
push 0x7f00
push 0
call dword [0x646914]
push 0
push 0
push eax
push 0x104b
call fcn.004aabbe
push 0x2d0
push 0x500
push 0x32
mov esi, eax
lea eax, [ebp - 0xc30]
push 0x32
push eax
call dword [0x6467bc]
push 0
push 0
push 0x82ca0000
lea eax, [ebp - 0xc30]
push eax
call dword [0x646928]
call fcn.004b4a49
push 0x82
mov eax, dword [eax + 0xc]
push eax
call dword [0x6468bc]
push eax
lea ecx, [edi + 0xfd14]
call fcn.004b66f5
push 0
push dword [edi + 0xfd18]
mov ecx, 0x724250
push 0
push dword [ebp - 0xc24]
push dword [ebp - 0xc28]
push dword [ebp - 0xc2c]
push dword [ebp - 0xc30]
push 0x82ca0000
push dword [edi + 0x50]
push esi
push 0
call fcn.004abc6c
push 0x5e
mov dword [edi + 0x20], 0x724250
call dword [0x6468b8]
test al, 0x40
je 0x417add
mov eax, dword [edi + 0x20]
push 1
push dword [eax + 0x20]
call dword [0x6468b0]
lea esi, [edi + 0xff44]
push esi
call fcn.00415d60
add esp, 4
push eax
push 0x6473c0
push 0x17
push 0
push 0x6473b0
call dword [0x646aa0]
push 0x10
call fcn.004a9481
add esp, 4
mov dword [ebp - 0xd5c], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x417ac5
mov ecx, eax
call fcn.0041b9d0
jmp 0x417ac7
xor eax, eax
push dword [esi]
mov ecx, eax
mov dword [ebp - 4], 0xffffffff
mov dword [edi + 0xff40], eax
call fcn.0041ba30
call fcn.004b4a49
mov eax, dword [eax + 4]
mov eax, dword [eax + 0x48]
cmp word [eax], 0
je 0x417b07
call fcn.004b4a49
mov eax, dword [eax + 4]
push dword [eax + 0x48]
call fcn.005eda89
add esp, 4
mov dword [edi + 0xf22c], eax
push dword [0x724270]
lea eax, [edi + 0xd0]
mov ecx, eax
mov dword [ebp - 0xd5c], eax
call fcn.0046f300
call fcn.004b4a49
call fcn.004b4a49
push 0xfe
mov eax, dword [eax + 0xc]
push eax
call dword [0x646904]
mov ecx, dword [edi + 0x20]
push eax
push 0
push 0x80
push dword [ecx + 0x20]
call dword [0x6467d4]
mov eax, dword [edi + 0xd83c]
push 8
test eax, eax
jne 0x417b76
push 0x800d
push dword [edi + 0xfd18]
call dword [0x6468e0]
mov dword [edi + 0xd83c], 0x800d
jmp 0x417b83
push eax
push dword [edi + 0xfd18]
call dword [0x6468e0]
push dword [edi + 0x9d50]
mov ecx, edi
push dword [edi + 0x9d4c]
push dword [0x724270]
call fcn.00418bc0
push 1
push dword [0x724270]
call dword [0x64657c]
cmp dword [edi + 0xd058], 0
lea esi, [edi + 0xd5d0]
jne 0x417bc7
cmp dword [esi + 0x14], 8
jb 0x417bc3
mov eax, dword [esi]
jmp 0x417bf3
mov eax, esi
jmp 0x417bf3
cmp dword [esi + 0x14], 8
jb 0x417bd1
mov eax, dword [esi]
jmp 0x417bd3
mov eax, esi
push eax
push 0x6473d0
lea eax, [ebp - 0xc20]
push 0x400
push eax
call fcn.0041a3d0
add esp, 0x10
lea eax, [ebp - 0xc20]
mov ecx, dword [edi + 0x20]
push eax
call fcn.004b1a67
push 1
call dword [0x6469bc]
call dword [0x6469b8]
push 2
push 0
mov dword [edi + 0xd47c], eax
call dword [0x646aa4]
test eax, eax
jns 0x417c41
cmp dword [esi + 0x14], 8
jb 0x417c26
mov esi, dword [esi]
mov eax, dword [edi + 0x20]
push 0x30
push esi
push str.Failed_to_initialize_COM_library.
push dword [eax + 0x20]
call dword [0x646924]
xor eax, eax
jmp 0x417f90
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.004a0318
push 0x208
lea eax, [ebp - 0x420]
push 0
push eax
call fcn.004a0318
add esp, 0x18
lea eax, [ebp - 0x218]
push 0
push 0x26
push eax
mov eax, dword [edi + 0x20]
push dword [eax + 0x20]
call dword [0x646578]
call fcn.004b454f
mov ecx, eax
test ecx, ecx
jne 0x417c96
push 0x80004005
call fcn.00416410
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xd48], eax
mov dword [ebp - 4], 1
call fcn.004b454f
mov ecx, eax
test ecx, ecx
jne 0x417cc0
push 0x80004005
call fcn.00416410
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0xd58], eax
mov byte [ebp - 4], 2
call fcn.004b454f
mov ecx, eax
test ecx, ecx
jne 0x417ce7
push 0x80004005
call fcn.00416410
mov eax, dword [ecx]
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0xd50], ebx
lea edx, [edi + 0x1894]
mov byte [ebp - 4], 3
mov dword [ebp - 0xd60], edx
test edx, edx
jne 0x417d0d
xor ecx, ecx
jmp 0x417d21
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x417d12
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0xd48]
call fcn.004190c0
lea ecx, [ebp - 0x218]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x417d37
sub ecx, edx
lea eax, [ebp - 0x218]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0xd58]
call fcn.004190c0
mov edi, dword [ebp - 0xd58]
mov esi, dword [ebp - 0xd48]
test edi, edi
jne 0x417d75
mov dword [ebp - 0xd4c], 0xffffffff
jmp 0x417dab
cmp dword [esi - 0xc], 0
jge 0x417d87
mov dword [ebp - 0xd4c], 0xffffffff
jmp 0x417dab
push edi
push esi
call fcn.004a0312
add esp, 8
test eax, eax
jne 0x417da1
mov dword [ebp - 0xd4c], 0xffffffff
jmp 0x417dab
sub eax, esi
sar eax, 1
mov dword [ebp - 0xd4c], eax
lea eax, [ebp - 0xd44]
mov dword [ebp - 0xd44], 0x114
push eax
call dword [0x646258]
cmp dword [ebp - 0xd4c], 0xffffffff
je 0x417ec2
cmp dword [ebp - 0xd40], 4
je 0x417ec2
mov eax, dword [esi - 0xc]
lea ecx, [ebp - 0xd48]
sub eax, dword [edi - 0xc]
push eax
lea eax, [ebp - 0xd4c]
push eax
call fcn.00418550
push eax
lea ecx, [ebp - 0xd50]
mov byte [ebp - 4], 4
call fcn.00416110
mov edx, dword [ebp - 0xd4c]
or eax, 0xffffffff
mov byte [ebp - 4], 3
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x417e27
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [ebp - 0xd54]
lea eax, [ebp - 0x420]
push 0
push 0x1c
push eax
mov eax, dword [esi + 0x20]
push dword [eax + 0x20]
call dword [0x646578]
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0xd48]
call fcn.00416180
push 0x6471b8
lea ecx, [ebp - 0xd48]
call fcn.004161d0
push str.heiantei
lea ecx, [ebp - 0xd48]
call fcn.004161d0
mov ebx, dword [ebp - 0xd50]
lea ecx, [ebp - 0xd48]
push dword [ebx - 0xc]
push ebx
call fcn.00416340
mov eax, dword [ebp - 0xd48]
lea ecx, [ebp - 0xd48]
add esi, 0x2094
push dword [eax - 0xc]
call fcn.00417920
push eax
push 0x104
push esi
call fcn.005ea811
push esi
call fcn.00416e20
mov esi, dword [ebp - 0xd48]
add esp, 0x10
jmp 0x417ee1
push dword [ebp - 0xd60]
mov eax, dword [ebp - 0xd54]
add eax, 0x2094
push 0x104
push eax
call fcn.005ea811
add esp, 0xc
mov eax, dword [ebp - 0xd54]
cmp dword [eax + 0xf22c], 0
jne 0x417f0d
mov ecx, dword [ebp - 0xd5c]
call fcn.0046b350
test eax, eax
jne 0x417f07
mov dword [ebp - 0xd50], eax
jmp 0x417f35
mov eax, dword [ebp - 0xd54]
push 0x6de04c
push 0
push eax
push 0x4185d0
push 0
push 0
call fcn.005ede87
add esp, 0x18
mov dword [0x724244], eax
mov dword [ebp - 0xd50], 1
lea edx, [ebx - 0x10]
mov byte [ebp - 4], 2
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x417f53
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 1
add edi, 0xfffffff0
mov eax, ebx
lock xadd dword [edi + 0xc], eax
dec eax
test eax, eax
jg 0x417f6e
mov ecx, dword [edi]
push edi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x417f8a
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0xd50]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005e0710
mov esp, ebp
pop ebp
ret