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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x34
call fcn.00626ba0
mov eax, dword [0x70a514]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
push esi
mov esi, ecx
push edi
mov dword [esp + 0x18], esi
cmp dword [esi + 0xcc], 0
jne 0x47abd8
push dword [esi + 0xc8]
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x80]
test eax, 0x100
jne 0x47abcc
and eax, 0x100100
lea ecx, [esi + 0xb0]
cmp eax, 0x100
jne 0x479eee
movups xmm0, xmmword [ecx]
movups xmmword [ecx], xmm0
mov eax, dword [ecx + 0x10]
mov dword [ecx + 0x10], eax
jmp 0x479f12
push 0
push ecx
push esi
mov edx, 0x692ac0
mov ecx, 0x692d14
call fcn.0049eb10
add esp, 0xc
test eax, eax
jne 0x479f12
or dword [esi + 0x80], 0x100080
push esi
call fcn.00476a00
add esp, 4
test eax, eax
jne 0x479f26
or dword [esi + 0x80], 0x40
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x47a03d
xor edi, edi
call fcn.00474010
test eax, eax
jle 0x47a03d
nop dword [eax]
test edi, edi
js 0x479f66
cmp edi, dword [ecx]
jge 0x479f66
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x479f68
mov ecx, dword [ebx]
jmp 0x479f6a
xor ebx, ebx
xor ecx, ecx
call fcn.00482830
cmp eax, 0x57
jne 0x479f87
cmp dword [esp + 0x10], 0
jne 0x47a033
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x479f8b
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.00474010
cmp edi, eax
jl 0x479f50
test edx, edx
je 0x47a03d
mov ecx, edx
call fcn.004a8b00
mov edi, eax
test edi, edi
je 0x47a033
cmp dword [edi], 0
je 0x479fbe
or dword [esi + 0x80], 0x10
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x80]
test ecx, ecx
je 0x47a00c
cmp dword [ecx + 4], 0x102
jne 0x479fe8
or eax, 0x80
mov dword [esi + 0x78], 0
mov dword [esi + 0x80], eax
jmp 0x47a013
call fcn.004a6780
mov dword [esi + 0x78], eax
cmp dword [edi], 0
jne 0x47a013
test eax, eax
je 0x47a013
or dword [esi + 0x80], 0x80
mov dword [esi + 0x78], 0
jmp 0x47a013
mov dword [esi + 0x78], 0xffffffff
push 0
mov edx, 0x6a306c
mov dword [esp + 0x38], edi
lea ecx, [esp + 0x38]
call fcn.0048c120
add esp, 4
or dword [esi + 0x80], 1
jmp 0x47a03d
or dword [esi + 0x80], 0x80
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x47a16d
xor edi, edi
call fcn.00474010
test eax, eax
jle 0x47a16d
test edi, edi
js 0x47a079
cmp edi, dword [ecx]
jge 0x47a079
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x47a07b
mov ecx, dword [ebx]
jmp 0x47a07d
xor ebx, ebx
xor ecx, ecx
call fcn.00482830
cmp eax, 0x297
jne 0x47a09c
cmp dword [esp + 0x10], 0
jne 0x47a163
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x47a0a0
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.00474010
cmp edi, eax
jl 0x47a063
test edx, edx
je 0x47a16d
mov ecx, edx
call fcn.004a8b00
mov edi, eax
test edi, edi
je 0x47a163
test byte [esi + 0x80], 0x10
jne 0x47a0fa
push 0xffffffffffffffff
mov edx, 0x55
mov ecx, esi
call fcn.00477a10
add esp, 4
test eax, eax
jns 0x47a0fa
push 0xffffffffffffffff
mov edx, 0x56
mov ecx, esi
call fcn.00477a10
add esp, 4
test eax, eax
js 0x47a104
or dword [esi + 0x80], 0x80
mov edx, dword [edi]
test edx, edx
je 0x47a13a
push 2
lea ecx, [esp + 0x2c]
call fcn.004a6300
add esp, 4
test eax, eax
je 0x47a13a
mov ecx, dword [esp + 0x28]
mov edx, ecx
mov eax, dword [esp + 0x2c]
add edx, 0x80000000
adc eax, 0
test eax, eax
ja 0x47a13a
jb 0x47a13d
cmp edx, 0xffffffff
jbe 0x47a13d
or ecx, 0xffffffff
mov dword [esi + 0x7c], ecx
mov edx, 0x6a2fd4
push 0
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], edi
call fcn.0048c120
add esp, 4
or dword [esi + 0x80], 0x400
jmp 0x47a16d
or dword [esi + 0x80], 0x80
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x47a25f
xor edi, edi
call fcn.00474010
test eax, eax
jle 0x47a25f
test edi, edi
js 0x47a1a9
cmp edi, dword [ecx]
jge 0x47a1a9
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x47a1ab
mov ecx, dword [ebx]
jmp 0x47a1ad
xor ebx, ebx
xor ecx, ecx
call fcn.00482830
cmp eax, 0x53
jne 0x47a1ca
cmp dword [esp + 0x10], 0
jne 0x47a255
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x47a1ce
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.00474010
cmp edi, eax
jl 0x47a193
test edx, edx
je 0x47a25f
mov ecx, edx
call fcn.004a8b00
mov edi, eax
test edi, edi
je 0x47a255
cmp dword [edi], 0
jle 0x47a21b
mov ecx, dword [edi + 8]
movzx ecx, byte [ecx]
mov dword [esi + 0x84], ecx
cmp dword [edi], 1
jle 0x47a225
mov eax, dword [edi + 8]
movzx eax, byte [eax + 1]
shl eax, 8
or eax, ecx
mov dword [esi + 0x84], eax
jmp 0x47a225
mov dword [esi + 0x84], 0
or dword [esi + 0x80], 2
mov eax, dword [edi + 0xc]
mov ebx, eax
and ebx, 0x80
test al, 0x10
jne 0x47a246
push dword [edi + 8]
call fcn.0062d677
add esp, 4
test ebx, ebx
jne 0x47a25f
push edi
call fcn.0062d677
add esp, 4
jmp 0x47a25f
or dword [esi + 0x80], 0x80
mov ecx, dword [esi + 0x38]
mov dword [esi + 0x88], 0
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x47a475
xor edi, edi
call fcn.00474010
test eax, eax
jle 0x47a475
nop
test edi, edi
js 0x47a2a6
cmp edi, dword [ecx]
jge 0x47a2a6
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x47a2a8
mov ecx, dword [ebx]
jmp 0x47a2aa
xor ebx, ebx
xor ecx, ecx
call fcn.00482830
cmp eax, 0x7e
jne 0x47a2c7
cmp dword [esp + 0x10], 0
jne 0x47a46b
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x47a2cb
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.00474010
cmp edi, eax
jl 0x47a290
test edx, edx
je 0x47a475
mov ecx, edx
call fcn.004a8b00
mov dword [esp + 0x10], eax
test eax, eax
je 0x47a46b
or dword [esi + 0x80], 4
xor edi, edi
nop dword [eax]
mov ecx, dword [eax]
cmp edi, ecx
jge 0x47a3e0
test edi, edi
js 0x47a316
mov eax, dword [eax + 4]
mov ecx, dword [eax + edi*4]
jmp 0x47a318
xor ecx, ecx
call fcn.00482830
cmp eax, 0xb4
jg 0x47a3aa
je 0x47a399
sub eax, 0x81
cmp eax, 0xa
ja case.0x47a338.134
jmp dword [eax*4 + 0x47abec]
or dword [esi + 0x88], 1
inc edi
mov eax, dword [esp + 0x10]
jmp 0x47a300
or dword [esi + 0x88], 2
inc edi
mov eax, dword [esp + 0x10]
jmp 0x47a300
or dword [esi + 0x88], 4
inc edi
mov eax, dword [esp + 0x10]
jmp 0x47a300
or dword [esi + 0x88], 8
inc edi
mov eax, dword [esp + 0x10]
jmp 0x47a300
or dword [esi + 0x88], 0x10
inc edi
mov eax, dword [esp + 0x10]
jmp 0x47a300
or dword [esi + 0x88], 0x40
inc edi
mov eax, dword [esp + 0x10]
jmp 0x47a300
or dword [esi + 0x88], 0x20
inc edi
mov eax, dword [esp + 0x10]
jmp 0x47a300
cmp eax, 0x129
je 0x47a3cc
cmp eax, 0x38e
jne case.0x47a338.134
or dword [esi + 0x88], 0x100
inc edi
mov eax, dword [esp + 0x10]
jmp 0x47a300
or dword [esi + 0x88], 0x80
mov eax, dword [esp + 0x10]
inc edi
jmp 0x47a300
xor ebx, ebx
test ecx, ecx
jle 0x47a452
mov eax, dword [eax + 4]
mov edi, dword [eax + ebx*4]
test edi, edi
je 0x47a449
mov eax, dword [edi + 0x14]
test al, 4
je 0x47a41c
push dword [edi]
call fcn.0062d677
add esp, 4
push dword [edi + 4]
call fcn.0062d677
mov eax, dword [edi + 0x14]
add esp, 4
mov dword [edi + 4], 0
mov dword [edi], 0
test al, 8
je 0x47a43c
push dword [edi + 0x10]
call fcn.0062d677
mov eax, dword [edi + 0x14]
add esp, 4
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
test al, 1
je 0x47a449
push edi
call fcn.0062d677
add esp, 4
mov eax, dword [esp + 0x10]
inc ebx
cmp ebx, dword [eax]
jl 0x47a3e6
push dword [eax + 4]
call fcn.0062d677
add esp, 4
push dword [esp + 0x10]
call fcn.0062d677
add esp, 4
jmp 0x47a475
or dword [esi + 0x80], 0x80
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x47a545
xor edi, edi
call fcn.00474010
test eax, eax
jle 0x47a545
nop dword [eax + eax]
test edi, edi
js 0x47a4b6
cmp edi, dword [ecx]
jge 0x47a4b6
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x47a4b8
mov ecx, dword [ebx]
jmp 0x47a4ba
xor ebx, ebx
xor ecx, ecx
call fcn.00482830
cmp eax, 0x47
jne 0x47a4d3
cmp dword [esp + 0x10], 0
jne 0x47a53b
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x47a4d7
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.00474010
cmp edi, eax
jl 0x47a4a0
test edx, edx
je 0x47a545
mov ecx, edx
call fcn.004a8b00
mov edi, eax
test edi, edi
je 0x47a53b
cmp dword [edi], 0
jle 0x47a503
mov ecx, dword [edi + 8]
movzx eax, byte [ecx]
jmp 0x47a505
xor eax, eax
mov dword [esi + 0x8c], eax
or dword [esi + 0x80], 8
mov eax, dword [edi + 0xc]
mov ebx, eax
and ebx, 0x80
test al, 0x10
jne 0x47a52c
push dword [edi + 8]
call fcn.0062d677
add esp, 4
test ebx, ebx
jne 0x47a545
push edi
call fcn.0062d677
add esp, 4
jmp 0x47a545
or dword [esi + 0x80], 0x80
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x47a5ec
xor edi, edi
call fcn.00474010
test eax, eax
jle 0x47a5ec
nop dword [eax + eax]
test edi, edi
js 0x47a586
cmp edi, dword [ecx]
jge 0x47a586
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x47a588
mov ecx, dword [ebx]
jmp 0x47a58a
xor ebx, ebx
xor ecx, ecx
call fcn.00482830
cmp eax, 0x52
jne 0x47a5a3
cmp dword [esp + 0x10], 0
jne 0x47a5d6
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x47a5a7
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.00474010
cmp edi, eax
jl 0x47a570
test edx, edx
je 0x47a5ec
mov ecx, edx
call fcn.004a8b00
mov dword [esi + 0x90], eax
test eax, eax
jne 0x47a5f6
or dword [esi + 0x80], 0x80
jmp 0x47a5f6
or dword [esi + 0x80], 0x80
mov dword [esi + 0x90], 0
jmp 0x47a5f6
mov dword [esi + 0x90], 0
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x47a6a4
xor edi, edi
call fcn.00474010
test eax, eax
jle 0x47a6a4
nop dword [eax]
test edi, edi
js 0x47a636
cmp edi, dword [ecx]
jge 0x47a636
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x47a638
mov ecx, dword [ebx]
jmp 0x47a63a
xor ebx, ebx
xor ecx, ecx
call fcn.00482830
cmp eax, 0x5a
jne 0x47a653
cmp dword [esp + 0x10], 0
jne 0x47a68c
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x47a657
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.00474010
cmp edi, eax
jl 0x47a620
test edx, edx
je 0x47a6a4
mov ecx, edx
call fcn.004a8b00
mov dword [esi + 0x94], eax
lea edi, [esi + 0x94]
test eax, eax
jne 0x47a6b0
or dword [esi + 0x80], 0x80
jmp 0x47a6b0
or dword [esi + 0x80], 0x80
lea edi, [esi + 0x94]
mov dword [edi], 0
jmp 0x47a6b0
lea edi, [esi + 0x94]
mov dword [edi], 0
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x28]
call fcn.00476be0
test eax, eax
jne 0x47a73b
mov edx, dword [edi]
mov ecx, esi
or dword [esi + 0x80], 0x20
call fcn.0047b070
test eax, eax
jne 0x47a73b
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x1c], eax
test edx, edx
je 0x47a724
cmp dword [edx + 4], eax
je 0x47a724
mov ecx, dword [edx + 8]
test ecx, ecx
jne 0x47a726
lea ecx, [esp + 0x1c]
call fcn.004761a0
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x47a724
mov edx, 0x77
push 0xa2
push str.C:mediagetdependencies_installeropenssl1_1_win_build_1.1.1qcryptox509x_pubkey.c
push 0x44
lea ecx, [edx - 0x6c]
call fcn.0047b5e0
add esp, 0xc
push edi
call fcn.00472e00
add esp, 4
xor ecx, ecx
mov edx, esi
call fcn.00479d90
test eax, eax
jne 0x47a73b
or dword [esi + 0x80], 0x2000
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x47a7dd
xor edi, edi
call fcn.00474010
test eax, eax
jle 0x47a7dd
test edi, edi
js 0x47a777
cmp edi, dword [ecx]
jge 0x47a777
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x47a779
mov ecx, dword [ebx]
jmp 0x47a77b
xor ebx, ebx
xor ecx, ecx
call fcn.00482830
cmp eax, 0x55
jne 0x47a794
cmp dword [esp + 0x10], 0
jne 0x47a7c7
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x47a798
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.00474010
cmp edi, eax
jl 0x47a761
test edx, edx
je 0x47a7dd
mov ecx, edx
call fcn.004a8b00
mov dword [esi + 0xa0], eax
test eax, eax
jne 0x47a7e7
or dword [esi + 0x80], 0x80
jmp 0x47a7e7
or dword [esi + 0x80], 0x80
mov dword [esi + 0xa0], 0
jmp 0x47a7e7
mov dword [esi + 0xa0], 0
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x47a88e
xor edi, edi
call fcn.00474010
test eax, eax
jle 0x47a88e
nop dword [eax]
test edi, edi
js 0x47a826
cmp edi, dword [ecx]
jge 0x47a826
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x47a828
mov ecx, dword [ebx]
jmp 0x47a82a
xor ebx, ebx
xor ecx, ecx
call fcn.00482830
cmp eax, 0x29a
jne 0x47a845
cmp dword [esp + 0x10], 0
jne 0x47a878
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x47a849
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.00474010
cmp edi, eax
jl 0x47a810
test edx, edx
je 0x47a88e
mov ecx, edx
call fcn.004a8b00
mov dword [esi + 0xa4], eax
test eax, eax
jne 0x47a898
or dword [esi + 0x80], 0x80
jmp 0x47a898
or dword [esi + 0x80], 0x80
mov dword [esi + 0xa4], 0
jmp 0x47a898
mov dword [esi + 0xa4], 0
mov ecx, esi
call fcn.00479be0
test eax, eax
jne 0x47a8ad
or dword [esi + 0x80], 0x80
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x47a951
xor edi, edi
call fcn.00474010
test eax, eax
jle 0x47a951
test edi, edi
js 0x47a8e9
cmp edi, dword [ecx]
jge 0x47a8e9
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x47a8eb
mov ecx, dword [ebx]
jmp 0x47a8ed
xor ebx, ebx
xor ecx, ecx
call fcn.00482830
cmp eax, 0x122
jne 0x47a908
cmp dword [esp + 0x10], 0
jne 0x47a93b
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x47a90c
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.00474010
cmp edi, eax
jl 0x47a8d3
test edx, edx
je 0x47a951
mov ecx, edx
call fcn.004a8b00
mov dword [esi + 0xa8], eax
test eax, eax
jne 0x47a95b
or dword [esi + 0x80], 0x80
jmp 0x47a95b
or dword [esi + 0x80], 0x80
mov dword [esi + 0xa8], 0
jmp 0x47a95b
mov dword [esi + 0xa8], 0
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x47a9ff
xor edi, edi
call fcn.00474010
test eax, eax
jle 0x47a9ff
test edi, edi
js 0x47a997
cmp edi, dword [ecx]
jge 0x47a997
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x47a999
mov ecx, dword [ebx]
jmp 0x47a99b
xor ebx, ebx
xor ecx, ecx
call fcn.00482830
cmp eax, 0x123
jne 0x47a9b6
cmp dword [esp + 0x10], 0
jne 0x47a9e9
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x47a9ba
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.00474010
cmp edi, eax
jl 0x47a981
test edx, edx
je 0x47a9ff
mov ecx, edx
call fcn.004a8b00
mov dword [esi + 0xac], eax
test eax, eax
jne 0x47aa09
or dword [esi + 0x80], 0x80
jmp 0x47aa09
or dword [esi + 0x80], 0x80
mov dword [esi + 0xac], 0
jmp 0x47aa09
mov dword [esi + 0xac], 0
mov ecx, esi
xor ebx, ebx
call fcn.00477a00
test eax, eax
jle 0x47aac6
nop word [eax + eax]
mov eax, dword [esi + 0x38]
test eax, eax
je 0x47aa3d
cmp dword [eax], ebx
jle 0x47aa3d
test ebx, ebx
js 0x47aa3d
mov eax, dword [eax + 4]
mov edi, dword [eax + ebx*4]
test edi, edi
je 0x47aa3f
mov ecx, dword [edi]
jmp 0x47aa41
xor edi, edi
xor ecx, ecx
call fcn.00482830
cmp eax, 0x359
jne 0x47aa57
or dword [esi + 0x80], 0x1000
test edi, edi
je 0x47aaaa
cmp dword [edi + 4], 0
jle 0x47aaaa
mov ecx, dword [edi]
call fcn.00482830
mov dword [esp + 0x14], eax
test eax, eax
je 0x47aabc
xor ecx, ecx
mov edi, 0xe
mov esi, eax
nop dword [eax]
lea eax, [edi + ecx]
cdq
sub eax, edx
mov edx, esi
sar eax, 1
sub edx, dword [eax*4 + 0x692f04]
jns 0x47aa97
mov edi, eax
jmp 0x47aa9e
test edx, edx
jle 0x47aaa4
lea ecx, [eax + 1]
cmp ecx, edi
jl 0x47aa80
test edx, edx
mov esi, dword [esp + 0x18]
jne 0x47aabc
mov ecx, esi
inc ebx
call fcn.00477a00
cmp ebx, eax
jl 0x47aa20
jmp 0x47aac6
or dword [esi + 0x80], 0x200
lea ecx, [esp + 0x20]
mov dword [esi + 0x60], 0
lea edi, [esi + 0x60]
mov dword [edi + 4], 0
push ecx
mov dword [edi + 8], 0xffffffff
mov dword [edi + 0xc], 0
push ecx
mov ecx, dword [esi + 0x48]
call fcn.00482830
add esp, 4
lea edx, [esp + 0x28]
mov ecx, eax
call fcn.004a6a80
add esp, 4
test eax, eax
je 0x47abb8
mov edx, dword [esp + 0x20]
test edx, edx
je 0x47abb8
mov ebx, dword [esp + 0x24]
mov dword [edi + 4], edx
test ebx, ebx
jne 0x47ab55
xor ecx, ecx
call fcn.0048fa20
test eax, eax
je 0x47abb8
mov ecx, dword [eax + 0x70]
test ecx, ecx
je 0x47abb8
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x48]
push eax
push edi
call ecx
add esp, 0xc
test eax, eax
je 0x47abb8
or dword [edi + 0xc], 1
jmp 0x47abb8
or dword [edi + 0xc], 1
mov ecx, ebx
mov dword [edi], ebx
call fcn.00482650
push 0
push 8
xor ecx, ecx
mov dword [esp + 0x20], eax
call fcn.00484170
add esp, 8
test eax, eax
je 0x47abb8
mov ecx, dword [esp + 0x18]
mov edx, 1
call fcn.004da810
test eax, eax
je 0x47abb8
mov eax, dword [eax + 8]
shl eax, 2
mov dword [edi + 8], eax
cmp ebx, 0x2a1
jg 0x47abac
je 0x47abb4
cmp ebx, 0x40
je 0x47abb4
cmp ebx, 0x2a0
je 0x47abb4
jmp 0x47abb8
cmp ebx, 0x2a2
jne 0x47abb8
or dword [edi + 0xc], 2
or dword [esi + 0x80], 0x100
mov dword [esi + 0xcc], 1
push dword [esi + 0xc8]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x3c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00626a7a
mov esp, ebp
pop ebp
ret