Function at 0x40b840
Capabilities:
Check if file exists
Delete file
Get file attributes
Move file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4517f3
mov eax, dword fs:[0]
push eax
sub esp, 0x230
mov eax, dword [0x46d560]
xor eax, esp
mov dword [esp + 0x228], eax
push ebx
push esi
push edi
mov eax, dword [0x46d560]
xor eax, esp
push eax
lea eax, [esp + 0x240]
mov dword fs:[0], eax
mov ebx, ecx
call fcn.00415d6f
call fcn.00408250
test al, al
jne 0x40b8a4
push 0x30
push 0x460d84
push str._OnInitDialog_
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [ebx + 0x20]
mov edx, 0x473b14
push ecx
lea ecx, [esp + 0x18]
mov dword [0x473134], eax
call fcn.0040a750
add esp, 4
mov dword [esp + 0x248], 0
lea ecx, [esp + 0x1c]
push dword [eax]
call fcn.00413d10
push eax
mov ecx, 0x473b18
call fcn.00413c60
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x40b934
lea eax, [esi + 8]
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jne 0x40b92c
test esi, esi
je 0x40b92c
mov eax, dword [esi]
test eax, eax
je 0x40b90c
push eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [esi], 0
mov eax, dword [esi + 4]
test eax, eax
je 0x40b923
push eax
call fcn.00414771
add esp, 4
mov dword [esi + 4], 0
push esi
call fcn.00414771
add esp, 4
mov dword [esp + 0x1c], 0
mov dword [esp + 0x248], 0xffffffff
or eax, 0xffffffff
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
lea ecx, [edx + 0xc]
lock xadd dword [ecx], eax
dec eax
test eax, eax
jg 0x40b95d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push dword [ebx + 0x1030]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 1
push 0x80
push dword [ebx + 0x20]
call esi
push dword [ebx + 0x1030]
push 0
push 0x80
push dword [ebx + 0x20]
call esi
mov edi, dword [ebx + 0x21c]
lea ecx, [ebx + 0x41c]
push str.DATAButton_btn_close_normal.png
push str.DATAButton_btn_close_down.png
push str.DATAButton_btn_close_highlight.png
push str.DATAButton_btn_close_normal.png
call fcn.004062a0
push 2
push 0x12
push 0x1e
push 0
push 0
mov dword [ebx + 0x4e8], 0
lea ecx, [ebx + 0x41c]
push 0
mov dword [ebx + 0x498], 1
mov dword [ebx + 0x494], edi
call fcn.0041c94c
push str.DATAButton_btn_mini_normal.png
push str.DATAButton_btn_mini_down.png
push str.DATAButton_btn_mini_highlight.png
push str.DATAButton_btn_mini_normal.png
lea ecx, [ebx + 0x504]
call fcn.004062a0
push 2
push 0x12
push 0x1e
push 0
push 0
mov dword [ebx + 0x5d0], 0
lea ecx, [ebx + 0x504]
push 0
mov dword [ebx + 0x580], 1
mov dword [ebx + 0x57c], edi
call fcn.0041c94c
push str.DATAButton_button_main_normal.png
push str.DATAButton_button_main_down.png
push str.DATAButton_button_main_up.png
lea esi, [ebx + 0x5ec]
push str.DATAButton_button_main_normal.png
mov ecx, esi
call fcn.004062a0
push 2
push 0x32
push 0x3c
mov dword [ebx + 0x6b8], 0
mov ecx, esi
push 0
push 0
mov dword [esi + 0xc8], 1
mov dword [esi + 0xdc], 0xff
mov dword [esi + 0xe0], 0xff
mov dword [esi + 0xe4], 0
push 0
mov dword [ebx + 0x668], 1
mov dword [ebx + 0x664], edi
call fcn.0041c94c
push str.DATAButton_button_main_normal.png
push str.DATAButton_button_main_down.png
push str.DATAButton_button_main_up.png
lea esi, [ebx + 0x6d4]
push str.DATAButton_button_main_normal.png
mov ecx, esi
call fcn.004062a0
mov dword [ebx + 0x7a0], 0
mov dword [esi + 0xc8], 1
mov dword [esi + 0xdc], 0xff
mov dword [esi + 0xe0], 0xff
mov dword [esi + 0xe4], 0
mov dword [ebx + 0x750], 1
push 2
push 0x32
push 0x3c
push 0
push 0
push 0
mov ecx, esi
mov dword [ebx + 0x74c], edi
call fcn.0041c94c
push str.DATAButton_button_main_normal.png
push str.DATAButton_button_main_down.png
push str.DATAButton_button_main_up.png
lea esi, [ebx + 0x7bc]
push str.DATAButton_button_main_normal.png
mov ecx, esi
call fcn.004062a0
push 2
push 0x32
push 0x3c
mov dword [ebx + 0x888], 0
mov ecx, esi
push 0
push 0
mov dword [esi + 0xc8], 1
mov dword [esi + 0xdc], 0xff
mov dword [esi + 0xe0], 0xff
mov dword [esi + 0xe4], 0
push 0
mov dword [ebx + 0x838], 1
mov dword [ebx + 0x834], edi
call fcn.0041c94c
push str.DATAButton_button_main_normal.png
push str.DATAButton_button_main_down.png
push str.DATAButton_button_main_up.png
lea esi, [ebx + 0x8a4]
push str.DATAButton_button_main_normal.png
mov ecx, esi
call fcn.004062a0
push 2
push 0x32
push 0x5c
mov dword [ebx + 0x970], 0
mov ecx, esi
push 0
push 0
mov dword [esi + 0xc8], 1
mov dword [esi + 0xdc], 0xff
mov dword [esi + 0xe0], 0xff
mov dword [esi + 0xe4], 0
push 0
mov dword [ebx + 0x920], 1
mov dword [ebx + 0x91c], edi
call fcn.0041c94c
push str.DATAButton_button_main5_normal.png
push str.DATAButton_button_main5_up.png
push str.DATAButton_button_main5_up.png
lea esi, [ebx + 0x98c]
push str.DATAButton_button_main5_normal.png
mov ecx, esi
call fcn.004062a0
push 2
push 0x19
push 0x5a
mov dword [ebx + 0xa58], 0
mov ecx, esi
push 0
push 0
mov dword [esi + 0xc8], 1
mov dword [esi + 0xdc], 0xff
mov dword [esi + 0xe0], 0xff
mov dword [esi + 0xe4], 0
push 0
mov dword [ebx + 0xa08], 1
mov dword [ebx + 0xa04], edi
call fcn.0041c94c
push str.DATAButton_button_main5_normal.png
push str.DATAButton_button_main5_up.png
lea esi, [ebx + 0xa74]
push str.DATAButton_button_main5_up.png
push str.DATAButton_button_main5_normal.png
mov ecx, esi
call fcn.004062a0
push 2
push 0x19
push 0x5a
mov dword [ebx + 0xb40], 0
mov ecx, esi
push 0
push 0
mov dword [esi + 0xc8], 1
mov dword [esi + 0xdc], 0xff
mov dword [esi + 0xe0], 0xff
mov dword [esi + 0xe4], 0
push 0
mov dword [ebx + 0xaf0], 1
mov dword [ebx + 0xaec], edi
call fcn.0041c94c
sub esp, 0x10
lea esi, [ebx + 0xb5c]
mov ecx, esi
call fcn.004063a0
push 2
push 0xe
push 0x44
mov dword [ebx + 0xc28], 1
mov ecx, esi
push 0
push 0
mov dword [esi + 0xc8], 1
mov dword [esi + 0xdc], 0xff
mov dword [esi + 0xe0], 0xff
mov dword [esi + 0xe4], 0
push 0
mov dword [ebx + 0xbd8], 1
mov dword [ebx + 0xbd4], edi
call fcn.0041c94c
sub esp, 0x10
lea esi, [ebx + 0xc44]
mov ecx, esi
call fcn.004063a0
push 2
push 0xe
push 0x44
mov dword [ebx + 0xd10], 1
mov ecx, esi
push 0
push 0
mov dword [esi + 0xc8], 1
mov dword [esi + 0xdc], 0xff
mov dword [esi + 0xe0], 0xff
mov dword [esi + 0xe4], 0
push 0
mov dword [ebx + 0xcc0], 1
mov dword [ebx + 0xcbc], edi
call fcn.0041c94c
sub esp, 0x10
lea esi, [ebx + 0xd2c]
mov ecx, esi
call fcn.004063a0
push 2
push 0xe
push 0x44
mov dword [ebx + 0xdf8], 1
mov ecx, esi
push 0
push 0
mov dword [esi + 0xc8], 1
mov dword [esi + 0xdc], 0xff
mov dword [esi + 0xe0], 0xff
mov dword [esi + 0xe4], 0
push 0
mov dword [ebx + 0xda8], 1
mov dword [ebx + 0xda4], edi
call fcn.0041c94c
push 0x104
push 0x473878
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
mov ecx, 0x473878
dec ecx
add eax, ecx
cmp byte [eax], 0x5c
je 0x40be46
nop
dec eax
cmp byte [eax], 0x5c
jne 0x40be40
push 0x104
push 0x473878
push 0x104
push 0x473350
mov byte [eax + 1], 0
call fcn.00439ec6
push str.Update.exe
push 0x104
push 0x473350
call fcn.00438e34
add esp, 0x1c
push 0x104
push 0x473878
push 0x104
push 0x473770
call fcn.00439ec6
push str.TL_6x.dll
push 0x104
push 0x473770
call fcn.00438e34
add esp, 0x1c
push 0x104
push 0x473878
push 0x104
push 0x473668
call fcn.00439ec6
push str.Login.dll
push 0x104
push 0x473668
call fcn.00438e34
add esp, 0x1c
push 0x104
push 0x473878
push 0x104
push 0x473248
call fcn.00439ec6
push str.DATADigital.dll
push 0x104
push 0x473248
call fcn.00438e34
add esp, 0x1c
push 0x104
push 0x473878
push 0x104
push 0x473140
call fcn.00439ec6
push str.DATAhbdt.dll
push 0x104
push 0x473140
call fcn.00438e34
add esp, 0x1c
push 0x104
push 0x473878
push 0x104
push 0x473560
call fcn.00439ec6
push str.DATA_
push 0x104
push 0x473560
call fcn.00438e34
add esp, 0x1c
push 0x104
push 0x473878
push 0x104
push 0x473458
call fcn.00439ec6
push str.DATAOpen.wav
push 0x104
push 0x473458
call fcn.00438e34
add esp, 0x1c
mov dword [esp + 0x20], 0
lea ecx, [esp + 0x20]
push 0x45f8e2
call fcn.004026d0
lea eax, [esp + 0x20]
mov dword [esp + 0x248], 1
lea esi, [ebx + 0x11c4]
lea edi, [ebx + 0x11c0]
push eax
push esi
push edi
call fcn.0040fdc0
mov eax, dword [esp + 0x20]
mov ecx, 0x45f8e2
lea esp, [esp]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40c000
test dl, dl
je 0x40bffc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40c000
add eax, 2
add ecx, 2
test dl, dl
jne 0x40bfe0
xor eax, eax
jmp 0x40c005
sbb eax, eax
or eax, 1
test eax, eax
jne 0x40c016
push 8
push 0x460fd0
lea ecx, [esp + 0x28]
jmp 0x40c087
push dword [esi]
call fcn.004387b6
add esp, 4
cmp eax, 0xbaa1251
jne 0x40c08c
push 0x104
lea eax, [esp + 0x28]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x24]
dec ecx
add eax, ecx
cmp byte [eax], 0x5c
je 0x40c04b
dec eax
cmp byte [eax], 0x5c
jne 0x40c045
push str.DATABuyInfo.txt
mov byte [eax + 1], 0
lea eax, [esp + 0x28]
push 0x104
push eax
call fcn.00438e34
add esp, 0xc
lea eax, [esp + 0x24]
push eax
call fcn.0040fbe0
push 9
push str.254374678
mov ecx, esi
call fcn.004025b0
push 0x1d
push str.http:__happycici9.taobao.com_
mov ecx, edi
call fcn.004025b0
mov eax, dword [esi]
mov ecx, 0x45f8e2
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40c0b3
test dl, dl
je 0x40c0af
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40c0b3
add eax, 2
add ecx, 2
test dl, dl
jne 0x40c093
xor eax, eax
jmp 0x40c0b8
sbb eax, eax
or eax, 1
test eax, eax
je 0x40c14d
push esi
lea eax, [esp + 0x20]
push 0x461020
push eax
call fcn.00413a40
add esp, 0xc
push 0x46101c
push eax
lea eax, [esp + 0x1c]
mov byte [esp + 0x250], 2
push eax
call fcn.00413b90
add esp, 0xc
push eax
mov ecx, esi
mov byte [esp + 0x24c], 3
call fcn.00402300
mov byte [esp + 0x248], 2
or edi, 0xffffffff
mov edx, dword [esp + 0x14]
mov ecx, edi
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c126
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x248], 1
mov ecx, edi
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c150
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x40c150
or edi, 0xffffffff
push 0xfffffffffffffff0
push dword [ebx + 0x1058]
call dword [sym.imp.USER32.dll_GetWindowLongA]
or eax, 0x209
push eax
push 0xfffffffffffffff0
push dword [ebx + 0x1058]
call dword [sym.imp.USER32.dll_SetWindowLongA]
mov esi, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
push 0x1037
push dword [ebx + 0x1058]
call esi
or eax, 0x20
push eax
push 0
push 0x1036
push dword [ebx + 0x1058]
call esi
push 0xfcdff
push 0
push 0x1001
push dword [ebx + 0x1058]
call esi
push 0
push 0
push 0x1024
push dword [ebx + 0x1058]
call esi
push 0x7fff
push 0
push 0x1026
push dword [ebx + 0x1058]
call esi
push 0x24
push 0
push 0x1036
push dword [ebx + 0x1058]
call esi
push 0xffffffffffffffff
push 0x64
push 2
push 0x461038
push 0
lea ecx, [ebx + 0x1038]
call fcn.00422856
push 0xffffffffffffffff
push 0x2d
push 2
push 0x461044
push 1
lea ecx, [ebx + 0x1038]
call fcn.00422856
push 0xffffffffffffffff
push 0x5a
push 2
push 0x46104c
push 2
lea ecx, [ebx + 0x1038]
call fcn.00422856
push 0xffffffffffffffff
push 0x30
push 2
push 0x461054
push 3
lea ecx, [ebx + 0x1038]
call fcn.00422856
push 0xffffffffffffffff
push 0
push 2
push 0x46105c
push 4
lea ecx, [ebx + 0x1038]
call fcn.00422856
push 0x20011
push 0
push 0x473458
call dword [sym.imp.WINMM.dll_PlaySoundA]
xor edx, edx
lea ecx, [esp + 0x1c]
call fcn.00409ff0
mov byte [esp + 0x248], 4
mov ecx, dword [eax]
mov esi, dword [0x473b10]
add esi, 0xfffffff0
lea edx, [ecx - 0x10]
cmp edx, esi
je 0x40c2e0
cmp dword [esi + 0xc], 0
jl 0x40c2d2
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x40c2d2
push edx
call fcn.00402a50
add esp, 4
mov dword [esp + 0x14], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40c2c8
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0x10
mov dword [0x473b10], eax
jmp 0x40c2e0
push dword [ecx - 0xc]
push ecx
mov ecx, 0x473b10
call fcn.004025b0
mov byte [esp + 0x248], 1
mov ecx, edi
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c305
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
push 0x461060
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00413b90
add esp, 0xc
push 0x473b10
push eax
lea eax, [esp + 0x1c]
mov byte [esp + 0x250], 5
push eax
call fcn.00412c00
add esp, 0xc
mov byte [esp + 0x248], 6
mov ecx, ebx
push dword [eax]
call fcn.0041c988
mov byte [esp + 0x248], 5
mov ecx, edi
mov edx, dword [esp + 0x14]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c36d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [esp + 0x248], 1
mov ecx, edi
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c392
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
xor edx, edx
lea ecx, [esp + 0x1c]
call fcn.00409ff0
mov byte [esp + 0x248], 7
mov ecx, dword [eax]
mov esi, dword [0x473b10]
add esi, 0xfffffff0
lea edx, [ecx - 0x10]
cmp edx, esi
je 0x40c402
cmp dword [esi + 0xc], 0
jl 0x40c3f4
mov eax, dword [edx]
cmp eax, dword [esi]
jne 0x40c3f4
push edx
call fcn.00402a50
add esp, 4
mov dword [esp + 0x14], eax
mov ecx, edi
lea edx, [esi + 0xc]
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x40c3ea
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0x10
mov dword [0x473b10], eax
jmp 0x40c402
push dword [ecx - 0xc]
push ecx
mov ecx, 0x473b10
call fcn.004025b0
mov byte [esp + 0x248], 1
mov ecx, edi
mov edx, dword [esp + 0x1c]
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c427
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
call fcn.00414abd
xor ecx, ecx
mov edx, eax
test edx, edx
setne cl
test ecx, ecx
jne 0x40c443
push 0x80004005
call fcn.00402b60
mov eax, dword [edx]
mov ecx, edx
call dword [eax + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov byte [esp + 0x248], 8
lea eax, [esp + 0x1c]
push dword [esp + 0x20]
push 0x461064
push eax
call fcn.00402a00
mov esi, dword [esp + 0x28]
add esp, 0xc
push esi
push 0
push 0x181
push dword [ebx + 0x116c]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x473b10
lea eax, [esp + 0x1c]
push 0x461080
push eax
call fcn.00413a40
add esp, 0xc
push dword [eax]
push 0
push 0x181
push dword [ebx + 0x116c]
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [esp + 0x18]
mov ecx, edi
add edx, 0xfffffff0
lea eax, [edx + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c4d0
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebx + 0x11c4]
mov ecx, 0x45f8e2
jmp 0x40c4e0
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x40c500
test dl, dl
je 0x40c4fc
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x40c500
add eax, 2
add ecx, 2
test dl, dl
jne 0x40c4e0
xor eax, eax
jmp 0x40c505
sbb eax, eax
or eax, 1
test eax, eax
je 0x40c522
push dword [ebx + 0x11c4]
push 0
push 0x181
push dword [ebx + 0x116c]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x46108c
push 0
push 0x181
push dword [ebx + 0x116c]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x4610ac
push 0
push 0x181
push dword [ebx + 0x116c]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x4610d4
push 0
push 0x181
push dword [ebx + 0x116c]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x4610f8
push 0
push 0x181
push dword [ebx + 0x116c]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x461120
push 0
push 0x181
push dword [ebx + 0x116c]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x46113c
push 0
push 0x181
push dword [ebx + 0x116c]
call dword [sym.imp.USER32.dll_SendMessageA]
call fcn.0040c930
test al, al
je 0x40c6fc
call fcn.00410d80
test al, al
je 0x40c6fc
mov ecx, ebx
call fcn.0040c870
push 0x104
push 0x473878
lea eax, [esp + 0x134]
push 0x104
push eax
call fcn.00439ec6
push str.U.upg
lea eax, [esp + 0x140]
push 0x104
push eax
call fcn.00438e34
add esp, 0x1c
lea eax, [esp + 0x12c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x40c63c
push 0x473350
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [esp + 0x12c]
push 0x473350
push eax
call fcn.00439637
add esp, 8
mov ecx, ebx
call fcn.00410190
push 1
mov ecx, ebx
call fcn.00422cd8
mov eax, dword [ebx + 0x11cc]
lea ecx, [ebx + 0x11cc]
push 0
push ebx
call dword [eax + 0x160]
push 0
push 1
push 0x401
push dword [ebx + 0x11ec]
call dword [sym.imp.USER32.dll_SendMessageA]
push 0x3eb
mov ecx, ebx
call fcn.0041c124
push 0
push 0
push 0x461168
push eax
lea ecx, [ebx + 0x11cc]
call fcn.00422bc9
push 0x3ff
mov ecx, ebx
call fcn.0041c124
push 0
push 0
push 0x4611a4
push eax
lea ecx, [ebx + 0x11cc]
call fcn.00422bc9
push 0x3ef
mov ecx, ebx
call fcn.0041c124
push 0
push 0
push 0x4611cc
push eax
lea ecx, [ebx + 0x11cc]
call fcn.00422bc9
call fcn.0041d383
push 0xf
push 0x14
push 0xa
mov eax, dword [eax + 8]
push 0xf
push ecx
push eax
mov ecx, ebx
call fcn.004041a0
mov ebx, 1
or edi, 0xffffffff
jmp 0x40c6fe
xor ebx, ebx
add esi, 0xfffffff0
mov byte [esp + 0x248], 1
mov ecx, edi
lea eax, [esi + 0xc]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x40c71f
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [esp + 0x248], 0xffffffff
mov esi, dword [esp + 0x20]
add esi, 0xfffffff0
lea eax, [esi + 0xc]
lock xadd dword [eax], edi
dec edi
test edi, edi
jg 0x40c745
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, ebx
mov ecx, dword [esp + 0x240]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x228]
xor ecx, esp
call fcn.004384c1
mov esp, ebp
pop ebp
ret