Function at 0x411da0
Capabilities:
Check mutex on windows
Extract resource via kernel32 functions
Get common file path
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x358
mov eax, dword [0x4714d0]
xor eax, esp
mov dword [esp + 0x354], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov eax, dword [0x476c44]
push esi
push edi
test al, 1
jne 0x411df9
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push str.._logs
push 0
call dword [eax + 0x2c]
mov eax, dword [0x476c44]
test al, 1
jne 0x411e44
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 1
push 0
call dword [eax + 0x30]
mov eax, dword [0x476c44]
test al, 1
jne 0x411e8c
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 1
push 0
call dword [eax + 0x44]
mov eax, dword [0x476c44]
test al, 1
jne 0x411ed4
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 0
push 0
call dword [eax + 0x34]
mov eax, dword [0x476c44]
test al, 1
jne 0x411f1c
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 0
push 0
call dword [eax + 0x38]
mov eax, dword [0x476c44]
test al, 1
jne 0x411f64
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
call dword [eax + 0x10]
mov eax, dword [0x476c44]
test al, 1
jne 0x411fa8
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 6
push 0
mov eax, dword [eax + 0x1c]
call eax
test al, al
je 0x4120a4
mov eax, dword [0x476c44]
test al, 1
jne 0x411ffa
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 6
push 0
mov eax, dword [eax + 0x6c]
call eax
mov edi, eax
mov ecx, 0xc
mov dword [esp + 0x10], ecx
lea esi, [edi + 0x24]
add esi, dword [edi + 0x20]
mov edx, esi
mov eax, esi
sub edx, dword [edi + 0x20]
add edx, 0x2000
sub edx, esi
cmp edx, ecx
jae 0x41203b
mov ecx, edx
mov dword [esp + 0x10], ecx
test edx, edx
je 0x412050
push ecx
push 0x4687c8
push esi
call fcn.00441040
mov eax, dword [esp + 0x1c]
add esp, 0xc
add eax, esi
sub eax, esi
add dword [edi + 0x20], eax
mov eax, dword [0x476c44]
test al, 1
jne 0x41208c
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 0x395
push 0x4687b0
push edi
call dword [eax + 0x20]
push 0x10
push 1
push 0
call dword [sym.imp.KERNEL32.dll_FindResourceA]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_LoadResource]
push eax
call dword [sym.imp.KERNEL32.dll_LockResource]
xorps xmm0, xmm0
movzx esi, word [eax + 0x3a]
movzx edx, word [eax + 0x38]
movzx ecx, word [eax + 0x3e]
movzx eax, word [eax + 0x3c]
push eax
push ecx
push edx
push esi
lea eax, [esp + 0x14c]
mov byte [esp + 0x14c], 0
push str._d._d._d._d
push eax
movq qword [esp + 0x155], xmm0
mov byte [esp + 0x15d], 0
call fcn.0043eae5
mov eax, dword [0x476c44]
add esp, 0x18
test al, 1
jne 0x41213c
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 6
push 0
mov eax, dword [eax + 0x1c]
call eax
test al, al
je 0x412286
mov eax, dword [0x476c44]
test al, 1
jne 0x41218e
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 6
push 0
mov eax, dword [eax + 0x6c]
call eax
mov dword [esp + 0x14], eax
mov edx, 9
mov dword [esp + 0x10], edx
lea esi, [eax + 0x24]
add esi, dword [eax + 0x20]
mov edi, esi
mov dword [esp + 0x30], esi
sub edi, dword [eax + 0x20]
mov ecx, esi
add edi, 0x2000
mov dword [esp + 0xc], ecx
mov eax, edi
sub eax, esi
cmp eax, edx
jae 0x4121db
mov edx, eax
mov dword [esp + 0x10], edx
test eax, eax
je 0x4121f4
push edx
push 0x4687e4
push esi
call fcn.00441040
mov ecx, dword [esp + 0x1c]
add esp, 0xc
add ecx, esi
mov dword [esp + 0xc], ecx
lea esi, [esp + 0x13c]
lea edx, [esi + 1]
mov edi, edi
mov al, byte [esi]
inc esi
test al, al
jne 0x412200
sub esi, edx
sub edi, ecx
cmp esi, edi
cmova esi, edi
test esi, esi
je 0x41222c
push esi
lea eax, [esp + 0x140]
push eax
push ecx
call fcn.00441040
mov ecx, dword [esp + 0x18]
add esp, 0xc
add ecx, esi
mov esi, dword [esp + 0x14]
sub ecx, dword [esp + 0x30]
mov eax, dword [0x476c44]
add dword [esi + 0x20], ecx
test al, 1
jne 0x41226e
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 0x3a1
push 0x4687b0
push esi
call dword [eax + 0x20]
mov esi, dword [sym.imp.KERNEL32.dll_CreateMutexA]
push str.f8f7e534_79d3_4f63_8e14_3470fd76dd8d1919wan
push 0
push 0
call esi
push str.b92c7679_9cb7_4e18_ba41_5b83ecc12db91919wan
push 0
push 0
mov dword [0x476ab4], eax
call esi
mov esi, eax
test esi, esi
je 0x4122c1
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4122d9
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0x354]
xor ecx, esp
call fcn.0043d8bb
mov esp, ebp
pop ebp
ret 0x10
push 3
call dword [sym.imp.libcurl.dll_curl_global_init]
sub esp, 0x14
mov ecx, esp
push str.by.dll
call fcn.00402b30
lea ecx, [esp + 0x90]
call fcn.0040ff00
add esp, 0x18
lea ecx, [esp + 0x78]
mov edx, 0x465da0
call fcn.004080b0
test al, al
je 0x41243f
call fcn.00411220
mov eax, dword [0x476c44]
test al, 1
jne 0x412351
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 6
push 0
mov eax, dword [eax + 0x1c]
call eax
test al, al
je 0x412d22
mov eax, dword [0x476c44]
test al, 1
jne 0x4123a3
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 6
push 0
mov eax, dword [eax + 0x6c]
call eax
mov edi, eax
mov ecx, 6
mov dword [esp + 0xc], ecx
lea esi, [edi + 0x24]
add esi, dword [edi + 0x20]
mov edx, esi
mov eax, esi
sub edx, dword [edi + 0x20]
add edx, 0x2000
sub edx, esi
cmp edx, ecx
jae 0x4123e4
mov ecx, edx
mov dword [esp + 0xc], ecx
test edx, edx
je 0x4123f9
push ecx
push 0x468850
push esi
call fcn.00441040
mov eax, dword [esp + 0x18]
add esp, 0xc
add eax, esi
sub eax, esi
add dword [edi + 0x20], eax
mov eax, dword [0x476c44]
test al, 1
jne 0x412435
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
push 0x3b6
jmp 0x412d0f
push 0x74
lea eax, [esp + 0xc4]
push 0
push eax
call fcn.00443760
add esp, 0xc
lea ecx, [esp + 0xc0]
call fcn.00424760
xorps xmm0, xmm0
movdqa xmmword [esp + 0x50], xmm0
movq qword [esp + 0x60], xmm0
psrldq xmm0, 8
movd eax, xmm0
push ecx
lea ecx, [esp + 0xc4]
mov dword [esp + 0x60], 0
and eax, 0xfffffe00
mov dword [esp + 0x64], 0
mov dword [esp + 0x5c], eax
lea eax, [esp + 0x54]
push eax
lea eax, [esp + 0x80]
mov dword [esp + 0x6c], 0
push eax
call fcn.00424890
mov esi, 0x474dac
test al, al
je 0x41280b
push 0x468773
push 0x468770
lea ecx, [esp + 0x58]
call fcn.0042cbd0
cmp byte [eax + 8], 0
je 0x41280b
push 0x46885c
push str.mexe
lea ecx, [esp + 0x58]
call fcn.0042cbd0
cmp byte [eax + 8], 0
je 0x41280b
push 0x468865
push str.upexe
lea ecx, [esp + 0x58]
call fcn.0042cbd0
cmp byte [eax + 8], 0
je 0x41280b
push 0x46886b
push 0x468868
lea ecx, [esp + 0x58]
call fcn.0042cbd0
cmp byte [eax + 8], 0
je 0x41280b
push 0x46886f
push 0x46886c
lea ecx, [esp + 0x58]
call fcn.0042cbd0
cmp byte [eax + 8], 0
je 0x41280b
push 0x468874
push str.down
lea ecx, [esp + 0x58]
call fcn.0042cbd0
cmp byte [eax + 8], 0
je 0x41280b
push 0x46887c
push str.game
lea ecx, [esp + 0x58]
call fcn.0042cbd0
cmp byte [eax + 8], 0
je 0x41280b
push 0x468884
push str.cnzz
lea ecx, [esp + 0x58]
call fcn.0042cbd0
cmp byte [eax + 8], 0
je 0x41280b
push 0x46888b
push 0x468888
lea ecx, [esp + 0x58]
call fcn.0042cbd0
cmp byte [eax + 8], 0
je 0x41280b
push 0x468773
push 0x468770
lea ecx, [esp + 0x58]
call fcn.0042cbd0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.0042b8b0
push eax
mov ecx, 0x474dc4
call fcn.00404f90
lea ecx, [esp + 0x18]
call fcn.00402c00
push 0x46885c
push str.mexe
lea ecx, [esp + 0x58]
call fcn.0042cbd0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.0042b8b0
push eax
mov ecx, 0x474ddc
call fcn.00404f90
lea ecx, [esp + 0x18]
call fcn.00402c00
push 0x468865
push str.upexe
lea ecx, [esp + 0x58]
call fcn.0042cbd0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.0042b8b0
push eax
mov ecx, 0x474df4
call fcn.00404f90
lea ecx, [esp + 0x18]
call fcn.00402c00
push 0x46886b
push 0x468868
lea ecx, [esp + 0x58]
call fcn.0042cbd0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.0042b8b0
push eax
mov ecx, 0x474e0c
call fcn.00404f90
lea ecx, [esp + 0x18]
call fcn.00402c00
push 0x46886f
push 0x46886c
lea ecx, [esp + 0x58]
call fcn.0042cbd0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.0042b8b0
push eax
mov ecx, 0x474e24
call fcn.00404f90
lea ecx, [esp + 0x18]
call fcn.00402c00
push 0x468874
push str.down
lea ecx, [esp + 0x58]
call fcn.0042cbd0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.0042b8b0
push eax
mov ecx, 0x474e3c
call fcn.00404f90
lea ecx, [esp + 0x18]
call fcn.00402c00
push 0x46887c
push str.game
lea ecx, [esp + 0x58]
call fcn.0042cbd0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.0042b8b0
push eax
mov ecx, 0x474e54
call fcn.00404f90
lea ecx, [esp + 0x18]
call fcn.00402c00
push 0x46888b
push 0x468888
lea ecx, [esp + 0x58]
call fcn.0042cbd0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.0042b8b0
push eax
mov ecx, 0x474e6c
call fcn.00404f90
lea ecx, [esp + 0x18]
call fcn.00402c00
push 0x468884
push str.cnzz
lea ecx, [esp + 0x58]
call fcn.0042cbd0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.0042b8b0
push eax
mov ecx, 0x474e84
call fcn.00404f90
lea ecx, [esp + 0x18]
call fcn.00402c00
push 0x468892
push str.lolkey
lea ecx, [esp + 0x58]
call fcn.0042cbd0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.0042b8b0
push eax
mov ecx, 0x474e9c
call fcn.00404f90
lea ecx, [esp + 0x18]
call fcn.00402c00
push 0x46889c
push str.cnzztype
lea ecx, [esp + 0x58]
call fcn.0042cbd0
cmp byte [eax + 8], 0
je 0x41280b
push 0x46889c
push str.cnzztype
lea ecx, [esp + 0x58]
call fcn.0042cbd0
lea ecx, [esp + 0x18]
push ecx
mov ecx, eax
call fcn.0042b8b0
push eax
mov ecx, esi
call fcn.00404f90
lea ecx, [esp + 0x18]
call fcn.00402c00
lea ecx, [esp + 0x50]
call fcn.0042b620
lea ecx, [esp + 0xc0]
call fcn.004108d0
cmp dword [0x474e04], 0
je 0x412bef
cmp dword [0x474dd4], 0
je 0x412bef
cmp dword [0x474e94], 0
je 0x412bef
cmp dword [0x474dbc], 0
jbe 0x412883
cmp dword [0x474dc0], 0x10
push str.game
cmovae esi, dword [0x474dac]
push esi
call fcn.0044e15a
movzx ecx, byte [0x476ac0]
add esp, 8
test eax, eax
mov edx, 1
cmove ecx, edx
mov byte [0x476ac0], cl
lea eax, [esp + 0x250]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0x465da0
lea ecx, [esp + 0x94]
call fcn.00402b30
lea eax, [esp + 0x250]
push eax
lea ecx, [esp + 0x94]
call fcn.00402c30
push str.libdock.dll
lea ecx, [esp + 0x94]
call fcn.00402c30
push 0x90
call fcn.0043e531
add esp, 4
test eax, eax
je 0x4128e8
mov ecx, eax
call fcn.00413f90
mov esi, eax
jmp 0x4128ea
xor esi, esi
lea ecx, [esp + 0x18]
call fcn.004100c0
push eax
lea ecx, [esi + 0x78]
call fcn.00404f90
lea ecx, [esp + 0x18]
call fcn.00402c00
cmp esi, 0x474dc4
je 0x41291d
push 0xffffffffffffffff
push 0
push 0x474dc4
mov ecx, esi
call fcn.00402fc0
lea ecx, [esi + 0x18]
cmp ecx, 0x474e3c
je 0x412936
push 0xffffffffffffffff
push 0
push 0x474e3c
call fcn.00402fc0
lea ecx, [esi + 0x30]
cmp ecx, 0x474e84
je 0x41294f
push 0xffffffffffffffff
push 0
push 0x474e84
call fcn.00402fc0
lea ecx, [esi + 0x60]
cmp ecx, 0x474df4
je 0x412968
push 0xffffffffffffffff
push 0
push 0x474df4
call fcn.00402fc0
mov ecx, esi
call fcn.00413d70
cmp byte [0x476ac0], 0
je 0x412a03
call fcn.004085b0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x1c]
call eax
test al, al
je 0x412a03
call fcn.004085b0
push 6
mov ecx, eax
push 0
mov edx, dword [eax]
mov eax, dword [edx + 0x6c]
call eax
mov esi, eax
mov dword [esp + 0x58], 0
xorps xmm0, xmm0
lea ecx, [esp + 0x50]
movq qword [esp + 0x50], xmm0
push 0x4688c4
lea edx, [esi + 0x24]
add edx, dword [esi + 0x20]
mov eax, edx
mov dword [esp + 0x54], edx
sub eax, dword [esi + 0x20]
add eax, 0x2000
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], eax
call fcn.00408660
mov eax, dword [esp + 0x58]
sub eax, dword [esp + 0x50]
add dword [esi + 0x20], eax
call fcn.004085b0
push 0x426
push 0x4687b0
push esi
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x20]
push str.32EA9AE7_2767_425C_B77A_E3B2825671A9
push 0x1000
push 0
push 4
push 0
push 0xffffffffffffffff
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
test eax, eax
je 0x412a7e
push 0
push 0
push 0
push 0xf001f
push eax
call dword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov edi, dword [esp + 0x8c]
lea edx, [esp + 0x78]
cmp edi, 0x10
mov esi, eax
cmovae edx, dword [esp + 0x78]
lea ecx, [edx + 1]
lea esp, [esp]
mov al, byte [edx]
inc edx
test al, al
jne 0x412a50
sub edx, ecx
cmp edi, 0x10
lea ecx, [esp + 0x78]
cmovae ecx, dword [esp + 0x78]
lea eax, [edx*4]
push eax
push ecx
push esi
call fcn.00441040
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
push 0x104
lea eax, [esp + 0x14d]
mov byte [esp + 0x14c], 0
push 0
push eax
call fcn.00443760
add esp, 0xc
lea eax, [esp + 0x148]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x148]
push 0x5c
push eax
call fcn.00440d80
mov esi, dword [esp + 0x10]
add esp, 8
mov byte [eax + 1], 0
push 0x6c
push esi
call dword [sym.imp.USER32.dll_LoadIconA]
mov ecx, esi
mov dword [0x476abc], eax
call fcn.00410fa0
push 0
push 0
push 0
push 0x410190
push 0
mov dword [0x476ac4], esi
mov esi, dword [sym.imp.KERNEL32.dll_CreateThread]
push 0
call esi
cmp byte [0x476ac0], 0
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
jne 0x412b21
push 0
push 0
push 0
push 0x4113e0
push 0
push 0
call esi
push eax
call edi
mov eax, dword [esp + 8]
push 0x6b
push eax
call dword [sym.imp.USER32.dll_LoadAcceleratorsA]
push str.LoadLOLINFro____
lea ecx, [esp + 0xac]
mov dword [esp + 0x18], eax
call fcn.00402b30
push 0
push 0
push 0
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
je 0x412bc9
jmp 0x412b60
cmp dword [esp + 0x38], 0x593
jne 0x412b87
cmp byte [0x476ac0], 1
jne 0x412b87
push 0
push 0
push 0
push 0x4113e0
push 0
push 0
call esi
push eax
call edi
lea eax, [esp + 0x34]
push eax
push dword [esp + 0x18]
push dword [esp + 0x3c]
call dword [sym.imp.USER32.dll_TranslateAcceleratorA]
test eax, eax
jne 0x412bb4
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x34]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageA]
push 0
push 0
push 0
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.USER32.dll_GetMessageA]
test eax, eax
jne 0x412b60
call fcn.00411220
mov esi, dword [esp + 0x3c]
lea ecx, [esp + 0xa8]
call fcn.00402c00
lea ecx, [esp + 0x90]
call fcn.00402c00
jmp 0x412d24
mov eax, dword [0x476c44]
test al, 1
jne 0x412c26
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 6
push 0
mov eax, dword [eax + 0x1c]
call eax
test al, al
je 0x412d22
mov eax, dword [0x476c44]
test al, 1
jne 0x412c78
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 6
push 0
mov eax, dword [eax + 0x6c]
call eax
mov edi, eax
mov ecx, 0x12
mov dword [esp + 8], ecx
lea esi, [edi + 0x24]
add esi, dword [edi + 0x20]
mov edx, esi
mov eax, esi
sub edx, dword [edi + 0x20]
add edx, 0x2000
sub edx, esi
cmp edx, ecx
jae 0x412cb9
mov ecx, edx
mov dword [esp + 8], ecx
test edx, edx
je 0x412cce
push ecx
push 0x4688a0
push esi
call fcn.00441040
mov eax, dword [esp + 0x14]
add esp, 0xc
add eax, esi
sub eax, esi
add dword [edi + 0x20], eax
mov eax, dword [0x476c44]
test al, 1
jne 0x412d0a
push 0xfc8
or eax, 1
push 0
push 0x476c48
mov dword [0x476c44], eax
call fcn.00443760
add esp, 0xc
call fcn.0040a020
push 0x45db30
call fcn.0043e1e7
add esp, 4
push 0x3d7
mov eax, dword [0x476c58]
mov ecx, 0x476c58
push 0x4687b0
push edi
call dword [eax + 0x20]
xor esi, esi
cmp dword [esp + 0x8c], 0x10
jb 0x412d3a
push dword [esp + 0x78]
call fcn.0043e223
add esp, 4
mov ecx, dword [esp + 0x35c]
mov eax, esi
pop edi
pop esi
xor ecx, esp
call fcn.0043d8bb
mov esp, ebp
pop ebp
ret 0x10