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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x34
call fcn.00627fd0
mov eax, dword [0x70b514]
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 0x480eb8
push dword [esi + 0xc8]
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [esi + 0x80]
test eax, 0x100
jne 0x480eac
and eax, 0x100100
lea ecx, [esi + 0xb0]
cmp eax, 0x100
jne 0x4801ce
movups xmm0, xmmword [ecx]
movups xmmword [ecx], xmm0
mov eax, dword [ecx + 0x10]
mov dword [ecx + 0x10], eax
jmp 0x4801f2
push 0
push ecx
push esi
mov edx, 0x6936f4
mov ecx, 0x694d88
call fcn.004aae00
add esp, 0xc
test eax, eax
jne 0x4801f2
or dword [esi + 0x80], 0x100080
push esi
call fcn.0047ccd0
add esp, 4
test eax, eax
jne 0x480206
or dword [esi + 0x80], 0x40
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x48031d
xor edi, edi
call fcn.0047a2e0
test eax, eax
jle 0x48031d
nop dword [eax]
test edi, edi
js 0x480246
cmp edi, dword [ecx]
jge 0x480246
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x480248
mov ecx, dword [ebx]
jmp 0x48024a
xor ebx, ebx
xor ecx, ecx
call fcn.00489640
cmp eax, 0x57
jne 0x480267
cmp dword [esp + 0x10], 0
jne 0x480313
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x48026b
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.0047a2e0
cmp edi, eax
jl 0x480230
test edx, edx
je 0x48031d
mov ecx, edx
call fcn.004b4290
mov edi, eax
test edi, edi
je 0x480313
cmp dword [edi], 0
je 0x48029e
or dword [esi + 0x80], 0x10
mov ecx, dword [edi + 4]
mov eax, dword [esi + 0x80]
test ecx, ecx
je 0x4802ec
cmp dword [ecx + 4], 0x102
jne 0x4802c8
or eax, 0x80
mov dword [esi + 0x78], 0
mov dword [esi + 0x80], eax
jmp 0x4802f3
call fcn.004928b0
mov dword [esi + 0x78], eax
cmp dword [edi], 0
jne 0x4802f3
test eax, eax
je 0x4802f3
or dword [esi + 0x80], 0x80
mov dword [esi + 0x78], 0
jmp 0x4802f3
mov dword [esi + 0x78], 0xffffffff
push 0
mov edx, 0x6a754c
mov dword [esp + 0x38], edi
lea ecx, [esp + 0x38]
call fcn.0049aaf0
add esp, 4
or dword [esi + 0x80], 1
jmp 0x48031d
or dword [esi + 0x80], 0x80
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x48044d
xor edi, edi
call fcn.0047a2e0
test eax, eax
jle 0x48044d
test edi, edi
js 0x480359
cmp edi, dword [ecx]
jge 0x480359
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x48035b
mov ecx, dword [ebx]
jmp 0x48035d
xor ebx, ebx
xor ecx, ecx
call fcn.00489640
cmp eax, 0x297
jne 0x48037c
cmp dword [esp + 0x10], 0
jne 0x480443
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x480380
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.0047a2e0
cmp edi, eax
jl 0x480343
test edx, edx
je 0x48044d
mov ecx, edx
call fcn.004b4290
mov edi, eax
test edi, edi
je 0x480443
test byte [esi + 0x80], 0x10
jne 0x4803da
push 0xffffffffffffffff
mov edx, 0x55
mov ecx, esi
call fcn.0047dcf0
add esp, 4
test eax, eax
jns 0x4803da
push 0xffffffffffffffff
mov edx, 0x56
mov ecx, esi
call fcn.0047dcf0
add esp, 4
test eax, eax
js 0x4803e4
or dword [esi + 0x80], 0x80
mov edx, dword [edi]
test edx, edx
je 0x48041a
push 2
lea ecx, [esp + 0x2c]
call fcn.00492430
add esp, 4
test eax, eax
je 0x48041a
mov ecx, dword [esp + 0x28]
mov edx, ecx
mov eax, dword [esp + 0x2c]
add edx, 0x80000000
adc eax, 0
test eax, eax
ja 0x48041a
jb 0x48041d
cmp edx, 0xffffffff
jbe 0x48041d
or ecx, 0xffffffff
mov dword [esi + 0x7c], ecx
mov edx, 0x6a74b4
push 0
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], edi
call fcn.0049aaf0
add esp, 4
or dword [esi + 0x80], 0x400
jmp 0x48044d
or dword [esi + 0x80], 0x80
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x48053f
xor edi, edi
call fcn.0047a2e0
test eax, eax
jle 0x48053f
test edi, edi
js 0x480489
cmp edi, dword [ecx]
jge 0x480489
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x48048b
mov ecx, dword [ebx]
jmp 0x48048d
xor ebx, ebx
xor ecx, ecx
call fcn.00489640
cmp eax, 0x53
jne 0x4804aa
cmp dword [esp + 0x10], 0
jne 0x480535
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x4804ae
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.0047a2e0
cmp edi, eax
jl 0x480473
test edx, edx
je 0x48053f
mov ecx, edx
call fcn.004b4290
mov edi, eax
test edi, edi
je 0x480535
cmp dword [edi], 0
jle 0x4804fb
mov ecx, dword [edi + 8]
movzx ecx, byte [ecx]
mov dword [esi + 0x84], ecx
cmp dword [edi], 1
jle 0x480505
mov eax, dword [edi + 8]
movzx eax, byte [eax + 1]
shl eax, 8
or eax, ecx
mov dword [esi + 0x84], eax
jmp 0x480505
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 0x480526
push dword [edi + 8]
call fcn.0062eaa7
add esp, 4
test ebx, ebx
jne 0x48053f
push edi
call fcn.0062eaa7
add esp, 4
jmp 0x48053f
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 0x480755
xor edi, edi
call fcn.0047a2e0
test eax, eax
jle 0x480755
nop
test edi, edi
js 0x480586
cmp edi, dword [ecx]
jge 0x480586
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x480588
mov ecx, dword [ebx]
jmp 0x48058a
xor ebx, ebx
xor ecx, ecx
call fcn.00489640
cmp eax, 0x7e
jne 0x4805a7
cmp dword [esp + 0x10], 0
jne 0x48074b
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x4805ab
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.0047a2e0
cmp edi, eax
jl 0x480570
test edx, edx
je 0x480755
mov ecx, edx
call fcn.004b4290
mov dword [esp + 0x10], eax
test eax, eax
je 0x48074b
or dword [esi + 0x80], 4
xor edi, edi
nop dword [eax]
mov ecx, dword [eax]
cmp edi, ecx
jge 0x4806c0
test edi, edi
js 0x4805f6
mov eax, dword [eax + 4]
mov ecx, dword [eax + edi*4]
jmp 0x4805f8
xor ecx, ecx
call fcn.00489640
cmp eax, 0xb4
jg 0x48068a
je 0x480679
sub eax, 0x81
cmp eax, 0xa
ja case.0x480618.134
jmp dword [eax*4 + 0x480ecc]
or dword [esi + 0x88], 1
inc edi
mov eax, dword [esp + 0x10]
jmp 0x4805e0
or dword [esi + 0x88], 2
inc edi
mov eax, dword [esp + 0x10]
jmp 0x4805e0
or dword [esi + 0x88], 4
inc edi
mov eax, dword [esp + 0x10]
jmp 0x4805e0
or dword [esi + 0x88], 8
inc edi
mov eax, dword [esp + 0x10]
jmp 0x4805e0
or dword [esi + 0x88], 0x10
inc edi
mov eax, dword [esp + 0x10]
jmp 0x4805e0
or dword [esi + 0x88], 0x40
inc edi
mov eax, dword [esp + 0x10]
jmp 0x4805e0
or dword [esi + 0x88], 0x20
inc edi
mov eax, dword [esp + 0x10]
jmp 0x4805e0
cmp eax, 0x129
je 0x4806ac
cmp eax, 0x38e
jne case.0x480618.134
or dword [esi + 0x88], 0x100
inc edi
mov eax, dword [esp + 0x10]
jmp 0x4805e0
or dword [esi + 0x88], 0x80
mov eax, dword [esp + 0x10]
inc edi
jmp 0x4805e0
xor ebx, ebx
test ecx, ecx
jle 0x480732
mov eax, dword [eax + 4]
mov edi, dword [eax + ebx*4]
test edi, edi
je 0x480729
mov eax, dword [edi + 0x14]
test al, 4
je 0x4806fc
push dword [edi]
call fcn.0062eaa7
add esp, 4
push dword [edi + 4]
call fcn.0062eaa7
mov eax, dword [edi + 0x14]
add esp, 4
mov dword [edi + 4], 0
mov dword [edi], 0
test al, 8
je 0x48071c
push dword [edi + 0x10]
call fcn.0062eaa7
mov eax, dword [edi + 0x14]
add esp, 4
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
test al, 1
je 0x480729
push edi
call fcn.0062eaa7
add esp, 4
mov eax, dword [esp + 0x10]
inc ebx
cmp ebx, dword [eax]
jl 0x4806c6
push dword [eax + 4]
call fcn.0062eaa7
add esp, 4
push dword [esp + 0x10]
call fcn.0062eaa7
add esp, 4
jmp 0x480755
or dword [esi + 0x80], 0x80
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x480825
xor edi, edi
call fcn.0047a2e0
test eax, eax
jle 0x480825
nop dword [eax + eax]
test edi, edi
js 0x480796
cmp edi, dword [ecx]
jge 0x480796
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x480798
mov ecx, dword [ebx]
jmp 0x48079a
xor ebx, ebx
xor ecx, ecx
call fcn.00489640
cmp eax, 0x47
jne 0x4807b3
cmp dword [esp + 0x10], 0
jne 0x48081b
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x4807b7
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.0047a2e0
cmp edi, eax
jl 0x480780
test edx, edx
je 0x480825
mov ecx, edx
call fcn.004b4290
mov edi, eax
test edi, edi
je 0x48081b
cmp dword [edi], 0
jle 0x4807e3
mov ecx, dword [edi + 8]
movzx eax, byte [ecx]
jmp 0x4807e5
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 0x48080c
push dword [edi + 8]
call fcn.0062eaa7
add esp, 4
test ebx, ebx
jne 0x480825
push edi
call fcn.0062eaa7
add esp, 4
jmp 0x480825
or dword [esi + 0x80], 0x80
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x4808cc
xor edi, edi
call fcn.0047a2e0
test eax, eax
jle 0x4808cc
nop dword [eax + eax]
test edi, edi
js 0x480866
cmp edi, dword [ecx]
jge 0x480866
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x480868
mov ecx, dword [ebx]
jmp 0x48086a
xor ebx, ebx
xor ecx, ecx
call fcn.00489640
cmp eax, 0x52
jne 0x480883
cmp dword [esp + 0x10], 0
jne 0x4808b6
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x480887
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.0047a2e0
cmp edi, eax
jl 0x480850
test edx, edx
je 0x4808cc
mov ecx, edx
call fcn.004b4290
mov dword [esi + 0x90], eax
test eax, eax
jne 0x4808d6
or dword [esi + 0x80], 0x80
jmp 0x4808d6
or dword [esi + 0x80], 0x80
mov dword [esi + 0x90], 0
jmp 0x4808d6
mov dword [esi + 0x90], 0
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x480984
xor edi, edi
call fcn.0047a2e0
test eax, eax
jle 0x480984
nop dword [eax]
test edi, edi
js 0x480916
cmp edi, dword [ecx]
jge 0x480916
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x480918
mov ecx, dword [ebx]
jmp 0x48091a
xor ebx, ebx
xor ecx, ecx
call fcn.00489640
cmp eax, 0x5a
jne 0x480933
cmp dword [esp + 0x10], 0
jne 0x48096c
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x480937
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.0047a2e0
cmp edi, eax
jl 0x480900
test edx, edx
je 0x480984
mov ecx, edx
call fcn.004b4290
mov dword [esi + 0x94], eax
lea edi, [esi + 0x94]
test eax, eax
jne 0x480990
or dword [esi + 0x80], 0x80
jmp 0x480990
or dword [esi + 0x80], 0x80
lea edi, [esi + 0x94]
mov dword [edi], 0
jmp 0x480990
lea edi, [esi + 0x94]
mov dword [edi], 0
mov edx, dword [esi + 0x1c]
mov ecx, dword [esi + 0x28]
call fcn.0047ceb0
test eax, eax
jne 0x480a1b
mov edx, dword [edi]
mov ecx, esi
or dword [esi + 0x80], 0x20
call fcn.00481350
test eax, eax
jne 0x480a1b
mov edx, dword [esi + 0x2c]
mov dword [esp + 0x1c], eax
test edx, edx
je 0x480a04
cmp dword [edx + 4], eax
je 0x480a04
mov ecx, dword [edx + 8]
test ecx, ecx
jne 0x480a06
lea ecx, [esp + 0x1c]
call fcn.0047c470
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x480a04
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.004818c0
add esp, 0xc
push edi
call fcn.004790d0
add esp, 4
xor ecx, ecx
mov edx, esi
call fcn.00480070
test eax, eax
jne 0x480a1b
or dword [esi + 0x80], 0x2000
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x480abd
xor edi, edi
call fcn.0047a2e0
test eax, eax
jle 0x480abd
test edi, edi
js 0x480a57
cmp edi, dword [ecx]
jge 0x480a57
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x480a59
mov ecx, dword [ebx]
jmp 0x480a5b
xor ebx, ebx
xor ecx, ecx
call fcn.00489640
cmp eax, 0x55
jne 0x480a74
cmp dword [esp + 0x10], 0
jne 0x480aa7
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x480a78
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.0047a2e0
cmp edi, eax
jl 0x480a41
test edx, edx
je 0x480abd
mov ecx, edx
call fcn.004b4290
mov dword [esi + 0xa0], eax
test eax, eax
jne 0x480ac7
or dword [esi + 0x80], 0x80
jmp 0x480ac7
or dword [esi + 0x80], 0x80
mov dword [esi + 0xa0], 0
jmp 0x480ac7
mov dword [esi + 0xa0], 0
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x480b6e
xor edi, edi
call fcn.0047a2e0
test eax, eax
jle 0x480b6e
nop dword [eax]
test edi, edi
js 0x480b06
cmp edi, dword [ecx]
jge 0x480b06
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x480b08
mov ecx, dword [ebx]
jmp 0x480b0a
xor ebx, ebx
xor ecx, ecx
call fcn.00489640
cmp eax, 0x29a
jne 0x480b25
cmp dword [esp + 0x10], 0
jne 0x480b58
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x480b29
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.0047a2e0
cmp edi, eax
jl 0x480af0
test edx, edx
je 0x480b6e
mov ecx, edx
call fcn.004b4290
mov dword [esi + 0xa4], eax
test eax, eax
jne 0x480b78
or dword [esi + 0x80], 0x80
jmp 0x480b78
or dword [esi + 0x80], 0x80
mov dword [esi + 0xa4], 0
jmp 0x480b78
mov dword [esi + 0xa4], 0
mov ecx, esi
call fcn.0047fec0
test eax, eax
jne 0x480b8d
or dword [esi + 0x80], 0x80
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x480c31
xor edi, edi
call fcn.0047a2e0
test eax, eax
jle 0x480c31
test edi, edi
js 0x480bc9
cmp edi, dword [ecx]
jge 0x480bc9
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x480bcb
mov ecx, dword [ebx]
jmp 0x480bcd
xor ebx, ebx
xor ecx, ecx
call fcn.00489640
cmp eax, 0x122
jne 0x480be8
cmp dword [esp + 0x10], 0
jne 0x480c1b
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x480bec
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.0047a2e0
cmp edi, eax
jl 0x480bb3
test edx, edx
je 0x480c31
mov ecx, edx
call fcn.004b4290
mov dword [esi + 0xa8], eax
test eax, eax
jne 0x480c3b
or dword [esi + 0x80], 0x80
jmp 0x480c3b
or dword [esi + 0x80], 0x80
mov dword [esi + 0xa8], 0
jmp 0x480c3b
mov dword [esi + 0xa8], 0
mov ecx, dword [esi + 0x38]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], 0
test ecx, ecx
je 0x480cdf
xor edi, edi
call fcn.0047a2e0
test eax, eax
jle 0x480cdf
test edi, edi
js 0x480c77
cmp edi, dword [ecx]
jge 0x480c77
mov eax, dword [ecx + 4]
mov ebx, dword [eax + edi*4]
test ebx, ebx
je 0x480c79
mov ecx, dword [ebx]
jmp 0x480c7b
xor ebx, ebx
xor ecx, ecx
call fcn.00489640
cmp eax, 0x123
jne 0x480c96
cmp dword [esp + 0x10], 0
jne 0x480cc9
mov edx, ebx
mov dword [esp + 0x10], edx
jmp 0x480c9a
mov edx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
inc edi
call fcn.0047a2e0
cmp edi, eax
jl 0x480c61
test edx, edx
je 0x480cdf
mov ecx, edx
call fcn.004b4290
mov dword [esi + 0xac], eax
test eax, eax
jne 0x480ce9
or dword [esi + 0x80], 0x80
jmp 0x480ce9
or dword [esi + 0x80], 0x80
mov dword [esi + 0xac], 0
jmp 0x480ce9
mov dword [esi + 0xac], 0
mov ecx, esi
xor ebx, ebx
call fcn.0047dce0
test eax, eax
jle 0x480da6
nop word [eax + eax]
mov eax, dword [esi + 0x38]
test eax, eax
je 0x480d1d
cmp dword [eax], ebx
jle 0x480d1d
test ebx, ebx
js 0x480d1d
mov eax, dword [eax + 4]
mov edi, dword [eax + ebx*4]
test edi, edi
je 0x480d1f
mov ecx, dword [edi]
jmp 0x480d21
xor edi, edi
xor ecx, ecx
call fcn.00489640
cmp eax, 0x359
jne 0x480d37
or dword [esi + 0x80], 0x1000
test edi, edi
je 0x480d8a
cmp dword [edi + 4], 0
jle 0x480d8a
mov ecx, dword [edi]
call fcn.00489640
mov dword [esp + 0x14], eax
test eax, eax
je 0x480d9c
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 + 0x694fb4]
jns 0x480d77
mov edi, eax
jmp 0x480d7e
test edx, edx
jle 0x480d84
lea ecx, [eax + 1]
cmp ecx, edi
jl 0x480d60
test edx, edx
mov esi, dword [esp + 0x18]
jne 0x480d9c
mov ecx, esi
inc ebx
call fcn.0047dce0
cmp ebx, eax
jl 0x480d00
jmp 0x480da6
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.00489640
add esp, 4
lea edx, [esp + 0x28]
mov ecx, eax
call fcn.004b2210
add esp, 4
test eax, eax
je 0x480e98
mov edx, dword [esp + 0x20]
test edx, edx
je 0x480e98
mov ebx, dword [esp + 0x24]
mov dword [edi + 4], edx
test ebx, ebx
jne 0x480e35
xor ecx, ecx
call fcn.0049bd10
test eax, eax
je 0x480e98
mov ecx, dword [eax + 0x70]
test ecx, ecx
je 0x480e98
lea eax, [esi + 0x50]
push eax
lea eax, [esi + 0x48]
push eax
push edi
call ecx
add esp, 0xc
test eax, eax
je 0x480e98
or dword [edi + 0xc], 1
jmp 0x480e98
or dword [edi + 0xc], 1
mov ecx, ebx
mov dword [edi], ebx
call fcn.00489460
push 0
push 8
xor ecx, ecx
mov dword [esp + 0x20], eax
call fcn.00493940
add esp, 8
test eax, eax
je 0x480e98
mov ecx, dword [esp + 0x18]
mov edx, 1
call fcn.004c89b0
test eax, eax
je 0x480e98
mov eax, dword [eax + 8]
shl eax, 2
mov dword [edi + 8], eax
cmp ebx, 0x2a1
jg 0x480e8c
je 0x480e94
cmp ebx, 0x40
je 0x480e94
cmp ebx, 0x2a0
je 0x480e94
jmp 0x480e98
cmp ebx, 0x2a2
jne 0x480e98
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.00627eaa
mov esp, ebp
pop ebp
ret