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

Disassembly:
sub esp, 0x474
push ebx
push ebp
push esi
push edi
push 0x44adc0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov esi, dword [esp + 0x488]
push 0x10
push 0x202
xor ebx, ebx
push ebx
push 4
push str..ISM
xor eax, eax
mov ecx, 0x8d
lea edi, [esp + 0x64]
push 0x441e1c
rep stosd dword es:[edi], eax
lea eax, [esp + 0x29c]
push esi
push eax
mov dword [esp + 0x40], ebx
mov dword [esp + 0x34], ebx
call fcn.004134c0
add esp, 0x14
push eax
call fcn.00414fd0
add esp, 0x10
cmp eax, ebx
mov dword [esp + 0x18], eax
jl 0x410915
push 6
push str..ISD
push 0x441e1c
lea ecx, [esp + 0x290]
push esi
push ecx
mov dword [esp + 0x34], 1
call fcn.004134c0
mov eax, dword [esp + 0x4b4]
add esp, 0x14
and eax, 1
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4a4]
jne 0x410157
push 0x10
push 0x202
lea edx, [esp + 0x28c]
push ebx
push edx
call fcn.00414fd0
add esp, 0x10
cmp eax, ebx
mov dword [esp + 0x48], eax
jl 0x410915
mov dword [esp + 0x20], 2
jmp 0x410167
test ah, 0x40
jne 0x410167
and eax, 0x8005
mov dword [esp + 0x14], eax
mov ebx, eax
mov esi, dword [esp + 0x498]
cmp dword [esp + 0x49c], esi
jbe 0x41017e
mov dword [esp + 0x49c], esi
mov edx, dword [esp + 0x494]
xor edi, edi
xor ecx, ecx
mov cx, word [edx]
xor ebp, ebp
cmp cx, 0xffff
mov dword [esp + 0x28], edi
mov eax, edx
mov dword [esp + 0x10], edi
mov dword [esp + 0x2c], edi
mov dword [esp + 0x3c], edi
je 0x410271
mov ebx, edi
lea esp, [esp]
xor esi, esi
mov si, word [eax + 2]
movsx ecx, cx
mov edx, esi
and edx, 0xffff
add ebx, edx
test ecx, ecx
je 0x410233
inc ebp
cmp ecx, 4
jne 0x4101fc
inc word [esp + 0x13e]
cmp edi, 0xffffffff
lea ecx, [esi - 4]
mov word [eax + 2], cx
je 0x41023d
cmp cx, 4
jne 0x4101ec
or edi, 0xffffffff
jmp 0x41023d
shl ecx, 3
mov edx, 1
shl edx, cl
lea edi, [edi + edx + 4]
jmp 0x41023d
cmp ecx, 2
je 0x41021a
cmp ecx, 1
je 0x41021a
cmp ecx, 7
jne 0x41020e
dec ebp
jmp 0x41023d
cmp ecx, 3
je 0x41023d
add dword [esp + 0x10], edx
dec ebp
jmp 0x41023d
cmp edi, 0xffffffff
je 0x41022c
xor ecx, ecx
cmp si, 0xff
seta cl
inc ecx
add edi, ecx
mov ecx, dword [esp + 0x10]
inc ecx
jmp 0x410239
mov ecx, dword [esp + 0x10]
add ecx, edx
mov dword [esp + 0x10], ecx
mov esi, dword [esp + 0x2c]
mov cx, word [eax + 0x18]
add eax, 0x18
inc esi
cmp cx, 0xffff
mov dword [esp + 0x2c], esi
jne 0x4101b0
mov edx, dword [esp + 0x494]
mov esi, dword [esp + 0x498]
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x3c], edi
mov ecx, ebp
and ecx, 7
cmp cl, 1
jne 0x4102a5
cmp eax, edx
je 0x4102a5
nop
sub eax, 0x18
cmp word [eax], 3
jne 0x410290
cmp word [eax + 2], 1
je 0x410296
cmp eax, edx
jne 0x410280
jmp 0x4102a5
mov word [eax], 0
mov eax, dword [esp + 0x10]
dec ebp
inc eax
mov dword [esp + 0x10], eax
test ebp, ebp
je 0x4102b5
test bl, 4
jne 0x4102b5
or ebx, 1
mov dword [esp + 0x14], ebx
add ebp, 7
shr ebp, 3
cmp edi, 0xffffffff
mov dword [esp + 0x4c], ebp
je 0x4102d1
mov edx, dword [esp + 0x28]
lea eax, [edx + ebp]
add edi, eax
mov dword [esp + 0x3c], edi
mov ecx, dword [esp + 0x10]
add ecx, ebp
test bl, 4
mov dword [esp + 0x10], ecx
je 0x4102fa
mov eax, dword [esp + 0x4a8]
cmp eax, 0x1000000
jae 0x410332
cmp eax, 0x10000
sbb ebx, ebx
add ebx, 3
jmp 0x410337
test esi, esi
jne 0x410306
cmp edi, 0xff
jb 0x410332
test bl, 1
jne 0x410332
cmp esi, 0xf42400
jae 0x410332
cmp edi, 0xffffffff
je 0x410332
test esi, esi
je 0x41032b
cmp esi, 0xfde8
jae 0x41032b
mov ebx, 2
jmp 0x410337
mov ebx, 3
jmp 0x410337
mov ebx, 4
mov edi, dword [esp + 0x48c]
xor esi, esi
cmp edi, esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x44], esi
jbe 0x4104d7
mov ecx, dword [esp + 0x490]
add ecx, 0xb
lea ebx, [ebx]
or eax, 0xffffffff
mov dword [esp + esi*4 + 0xc8], eax
mov dword [esp + esi*4 + 0x88], eax
mov al, byte [ecx - 0xb]
xor edx, edx
mov dl, al
xor edi, edi
mov ebp, ebx
and edx, 1
mov dword [esp + esi*4 + 0x152], edx
xor esi, esi
test al, 2
je 0x4103a8
cmp word [ecx + 3], 0x7f
jbe 0x4103a8
and al, 0xfd
mov byte [ecx - 0xb], al
test byte [ecx - 0xb], 2
je 0x4103e2
mov al, byte [ecx]
test al, 1
je 0x4103be
cmp byte [ecx - 1], 7
jne 0x4103be
and al, 0xfe
mov byte [ecx], al
mov al, byte [ecx]
test al, 1
jne 0x4103c9
mov edi, 1
mov ebx, dword [esp + 0x14]
or al, 2
or ebx, 2
test al, 1
mov byte [ecx], al
mov dword [esp + 0x14], ebx
jne 0x4103e2
xor esi, esi
mov si, word [ecx + 3]
lea eax, [ecx - 1]
mov byte [ecx - 0xa], 0
cmp byte [eax], 0
je 0x41043c
mov edi, edi
inc byte [ecx - 0xa]
mov dx, word [eax + 4]
cmp dx, 0x7f
jbe 0x410401
and byte [eax + 1], 0xfc
test byte [eax + 1], 1
je 0x41042c
mov dl, byte [ecx - 0xb]
mov ebx, dword [esp + 0x14]
or dl, 4
mov byte [ecx - 0xb], dl
xor edx, edx
mov dx, word [eax + 4]
or ebx, 2
mov dword [esp + 0x14], ebx
inc edi
mov ebx, edx
and ebx, 0xffff
add esi, ebx
and edx, 0xffff
add eax, 6
add ebp, edx
cmp byte [eax], 0
jne 0x4103f0
mov ebx, eax
xor edx, edx
mov dword [ebx], edx
mov word [ebx + 4], dx
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0x30]
mov word [eax + 4], bx
xor eax, eax
mov al, byte [ecx - 0xa]
add edi, ebp
add edx, eax
mov eax, edi
sub eax, esi
mov dword [esp + 0x30], edx
mov dx, word [0x42daf8]
xor esi, esi
mov si, dx
mov word [ecx - 5], ax
mov eax, dword [esp + 0x38]
mov word [ecx - 9], dx
mov word [ecx - 7], bp
mov word [ecx - 3], di
cmp esi, eax
jbe 0x41048b
mov dword [esp + 0x38], esi
cmp edi, dword [esp + 0x34]
jbe 0x410495
mov dword [esp + 0x34], edi
add edi, edi
xor edx, edx
lea eax, [esi - 5]
div edi
xor edx, edx
mov ebp, dword [esp + 0x24]
add ecx, 0x78
mov edi, eax
mov eax, dword [esp + 0x498]
div edi
mov edi, dword [esp + 0x48c]
imul eax, esi
mov esi, dword [esp + 0x44]
add ebp, eax
inc esi
cmp esi, edi
mov dword [esp + 0x24], ebp
mov dword [esp + 0x44], esi
jb 0x410370
mov ebp, dword [esp + 0x4c]
mov ecx, dword [esp + 0x30]
lea eax, [ecx + edi]
lea edx, [eax + eax*2]
mov eax, dword [esp + 0x2c]
lea ecx, [eax*4]
lea edx, [ecx + edx*2]
push 4
lea ecx, [esp + 0x54]
lea eax, [edi + edi*4]
push 0x42dae4
push ecx
lea esi, [edx + eax*2 + 0x27e]
call fcn.0041bbb0
mov eax, dword [esp + 0x4b0]
mov ecx, dword [esp + 0x20]
and eax, 0x4000
add esp, 0xc
neg eax
sbb eax, eax
and eax, 0x4004
or eax, ecx
mov word [esp + 0x54], ax
mov word [esp + 0x56], si
mov word [esp + 0x58], 0xc6
mov word [esp + 0x5a], 0x7e
mov word [esp + 0x5c], 0x200
mov dword [esp + 0x68], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, dword [esp + 0x18]
push 0
mov dword [esp + 0x80], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x84], 0
call fcn.0041b59d
mov edx, dword [esp + 0x18]
mov dword [esp + 0x114], eax
mov eax, dword [esp + 0x28]
add esp, 4
test eax, eax
mov word [esp + 0x130], dx
mov word [esp + 0x138], bx
je 0x4105bb
cmp eax, 0x1c9c380
ja 0x4105bb
xor ecx, ecx
cmp eax, 0x1d4c0
seta cl
inc ecx
mov word [esp + 0x13a], cx
jmp 0x4105c5
mov word [esp + 0x13a], 3
mov ecx, dword [0x42daf8]
lea eax, [esi + ecx - 1]
mov esi, dword [esp + 0x28]
dec ecx
not ecx
and eax, ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x6c], eax
mov dword [esp + 0x116], eax
mov ax, word [esp + 0x38]
add ecx, 0xb
and ecx, 0xfff8
mov word [esp + 0x140], ax
mov eax, dword [esp + 0x498]
mov word [esp + 0x142], cx
mov ecx, dword [esp + 0x49c]
mov dword [esp + 0x11a], eax
mov eax, dword [esp + 0x13e]
mov dword [esp + 0x11e], ecx
lea ecx, [eax*4]
mov eax, ebp
sub eax, ecx
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x122], ecx
mov cx, word [esp + 0x10]
add eax, esi
cmp ebx, 4
mov word [esp + 0x134], cx
mov cx, word [esp + 0x2c]
mov word [esp + 0x114], di
mov word [esp + 0x13c], di
mov word [esp + 0x12e], si
mov word [esp + 0x132], ax
mov word [esp + 0x148], bp
mov word [esp + 0x144], cx
mov word [esp + 0x146], bp
mov word [esp + 0x192], 0xffff
jne 0x4106a6
mov dword [esp + 0x126], 0xffffffff
jmp 0x4106ed
test dl, 5
je 0x4106bb
lea ecx, [ebx*8]
mov edx, 1
shl edx, cl
jmp 0x4106e6
cmp ebx, 3
jne 0x4106d5
cmp esi, 0x100
jb 0x4106d5
mov dword [esp + 0x126], 0xffffffff
jmp 0x4106ed
lea ecx, [ebx*8]
mov edx, 1
shl edx, cl
imul edx, esi
mov dword [esp + 0x126], edx
cmp word [esp + 0x13a], 3
jne 0x410705
mov dword [esp + 0x12a], 0xffffffff
jmp 0x410720
mov ecx, dword [esp + 0x13a]
shl ecx, 3
mov edx, 1
shl edx, cl
shl edx, 9
mov dword [esp + 0x12a], edx
mov ecx, dword [esp + 0x132]
and ecx, 0xffff
lea edx, [ecx + 3]
cmp edx, 0x14
jge 0x41075c
cmp word [esp + 0x13e], 0
jne 0x41075c
cmp ax, 8
jbe 0x410750
mov word [esp + 0x136], cx
jmp 0x410766
mov word [esp + 0x136], 8
jmp 0x410766
mov word [esp + 0x136], 0x14
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x41077f
push 0
call fcn.0041b59d
add esp, 4
mov dword [esp + 0x14a], eax
xor eax, eax
push 4
mov ecx, 0x80
lea edi, [esp + 0x288]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0x1c]
push 0xc6
lea eax, [esp + 0x58]
push eax
push ecx
call fcn.00415620
add esp, 0x10
test eax, eax
jne 0x410915
mov eax, dword [esp + 0x18]
push 4
push 0x13a
lea edx, [esp + 0x28c]
push edx
push eax
call fcn.00415620
add esp, 0x10
test eax, eax
jne 0x410915
mov edx, dword [esp + 0x18]
push 4
push 0x7e
lea ecx, [esp + 0x11e]
push ecx
push edx
call fcn.00415620
add esp, 0x10
test eax, eax
jne 0x410915
xor ebx, ebx
cmp word [esp + 0x13c], bx
jbe 0x410862
mov edi, dword [esp + 0x490]
mov eax, dword [esp + 0x18]
push 4
push 0xa
push edi
push eax
call fcn.00415620
add esp, 0x10
test eax, eax
jne 0x410915
xor ebp, ebp
lea esi, [edi + 0xa]
mov ecx, dword [esp + 0x18]
push 4
push 6
push esi
push ecx
call fcn.00415620
add esp, 0x10
test eax, eax
jne 0x410915
xor edx, edx
mov dl, byte [edi + 1]
inc ebp
add esi, 6
cmp ebp, edx
jbe 0x410827
mov eax, dword [esp + 0x13c]
inc ebx
and eax, 0xffff
add edi, 0x78
cmp ebx, eax
jb 0x410808
xor edi, edi
cmp word [esp + 0x144], di
jbe 0x4108a4
mov esi, dword [esp + 0x494]
mov ecx, dword [esp + 0x18]
push 4
push 4
push esi
push ecx
call fcn.00415620
add esp, 0x10
test eax, eax
jne 0x410915
mov edx, dword [esp + 0x144]
inc edi
and edx, 0xffff
add esi, 0x18
cmp edi, edx
jb 0x410875
mov eax, dword [esp + 0x116]
mov ecx, dword [esp + 0x18]
push 0
push 0
push eax
push ecx
call fcn.00414f80
add esp, 0x10
test eax, eax
jne 0x410915
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x4108e4
mov edx, dword [esp + 0x48]
push 0
push edx
mov dword [esp + 0x28], 1
call fcn.00413300
add esp, 8
test eax, eax
jne 0x410915
push 0x44adc0
mov dword [esp + 0x24], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esp + 0x18]
push 0
push eax
call fcn.00413300
add esp, 8
test eax, eax
jne 0x410915
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x474
ret
push 0x44adc0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.004137d0
mov esi, dword [eax]
mov eax, dword [esp + 0x20]
dec eax
je 0x410940
dec eax
jne 0x41094f
mov ecx, dword [esp + 0x48]
push 0
push ecx
call fcn.00413300
add esp, 8
mov edx, dword [esp + 0x18]
push 0
push edx
call fcn.00413300
add esp, 8
call fcn.004137d0
pop edi
mov dword [eax], esi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
add esp, 0x474
ret