Function at 0x40db8d
Capabilities:
Create thread
Terminate process

Disassembly:
push 0x264
mov eax, 0x410ed4
call fcn.00410d96
mov eax, dword [ebp + 0xc]
xor ebx, ebx
push ebx
push ebx
push 1
push ebx
mov dword [ebp - 0x228], eax
call dword [sym.imp.KERNEL32.dll_HeapSetInformation]
mov edx, dword [ebp + 8]
lea eax, [ebp + 8]
xor ecx, ecx
mov dword [ebp - 0x258], eax
inc ecx
mov dword [ebp - 0x240], 1
mov dword [ebp - 0x260], 1
lea eax, [ebp - 0x228]
mov dword [ebp - 0x244], ebx
mov dword [ebp - 0x264], ebx
mov dword [ebp - 0x268], ebx
mov dword [ebp - 0x24c], ebx
mov dword [ebp - 0x248], ebx
mov dword [ebp - 0x25c], 0x401028
mov dword [ebp - 0x254], eax
cmp edx, ecx
jle 0x40dc3a
push 0x2d
pop esi
push 0x2f
pop edi
mov dword [ebp - 0x230], esi
mov dword [ebp - 0x22c], edi
mov eax, dword [ebp - 0x228]
mov eax, dword [eax + ecx*4]
cmp si, word [eax]
jne 0x40dc33
mov word [eax], di
mov edx, dword [ebp + 8]
inc ecx
cmp ecx, edx
jl 0x40dc1f
jmp 0x40dc4e
mov dword [ebp - 0x230], 0x2d
mov dword [ebp - 0x22c], 0x2f
mov dword [ebp - 4], ebx
push 0x40d4d0
mov byte [ebp - 4], 1
call dword [sym.imp.msvcrt.dll_int____cdecl___unsigned_int____cdecl__set_new_handler_int____cdecl___unsigned_int__]
pop ecx
push 0x407564
lea ecx, [ebp - 0x25c]
mov dword [ebp - 0x26c], eax
mov dword [ebp - 0x264], eax
call fcn.0040ec10
test eax, eax
je 0x40dc95
mov ecx, dword [ebp - 0x228]
mov ecx, dword [ecx]
call fcn.0040d4f2
push ebx
call dword [sym.imp.msvcrt.dll_exit]
push 0x407568
lea ecx, [ebp - 0x25c]
call fcn.0040ec10
xor edi, edi
inc edi
test eax, eax
je 0x40dcb2
mov dword [0x412494], edi
push 0x40756c
lea ecx, [ebp - 0x25c]
call fcn.0040ec10
push 0x407574
lea ecx, [ebp - 0x25c]
call fcn.0040ec10
push 0x40757c
lea ecx, [ebp - 0x25c]
call fcn.0040ec10
test eax, eax
je 0x40dcec
mov dword [0x412424], edi
mov esi, edi
mov dword [ebp - 0x238], ebx
cmp dword [ebp + 8], edi
jle 0x40dd34
mov eax, dword [ebp - 0x228]
mov edx, dword [eax + esi*4]
movzx ecx, word [edx]
cmp word [ebp - 0x22c], cx
je 0x40dd17
cmp word [ebp - 0x230], cx
jne 0x40dd2e
lea ecx, [edx + 2]
mov edx, 0x407588
call fcn.0040bdd5
test eax, eax
mov eax, dword [ebp - 0x228]
je 0x40dd48
inc esi
cmp esi, dword [ebp + 8]
jl 0x40dcff
mov eax, dword [ebp - 0x228]
mov ecx, dword [eax]
call fcn.0040d4f2
push 0x4075f8
jmp 0x40ddb0
mov eax, dword [eax + esi*4]
lea edx, [esi + 1]
push 0x2d
pop ecx
mov word [eax], cx
mov ecx, dword [ebp - 0x228]
cmp edx, dword [ebp + 8]
jge 0x40dd9c
mov eax, dword [ecx + edx*4]
movzx eax, word [eax]
cmp word [ebp - 0x22c], ax
je 0x40dd8c
cmp word [ebp - 0x230], ax
mov eax, dword [ebp - 0x238]
je 0x40dd92
inc eax
inc edx
mov dword [ebp - 0x238], eax
cmp edx, dword [ebp + 8]
jl 0x40dd5f
jmp 0x40dd92
mov eax, dword [ebp - 0x238]
test eax, eax
jle 0x40dd9e
inc esi
lea esi, [ecx + esi*4]
jmp 0x40dda0
mov eax, ebx
mov esi, ebx
cmp eax, edi
jge 0x40ddbe
mov ecx, dword [ecx]
call fcn.0040d4f2
push 0x407590
call dword [sym.imp.msvcrt.dll_wprintf]
pop ecx
push 0xffffffffffffffff
jmp 0x40dc8f
xor ecx, ecx
mov dword [ebp - 0x260], eax
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00410315
mov edx, dword [ebp - 0x238]
sub esi, eax
pop ecx
mov dword [ebp - 0x250], eax
mov ecx, eax
mov dword [ebp - 0x268], eax
mov eax, dword [esi + ecx]
mov dword [ecx], eax
push 4
pop eax
add ecx, eax
sub edx, 1
jne 0x40ddef
mov ecx, dword [ebp + 8]
mov eax, edi
mov esi, dword [ebp - 0x228]
mov dword [ebp - 0x224], ebx
mov dword [ebp - 0x220], eax
cmp ecx, edi
jle 0x40dee6
mov edx, dword [esi + eax*4]
movzx edx, word [edx]
cmp word [ebp - 0x22c], dx
je 0x40de35
cmp word [ebp - 0x230], dx
jne 0x40de52
mov ecx, dword [esi + eax*4]
mov edx, 0x40764c
add ecx, 2
call fcn.0040bdd5
test eax, eax
je 0x40de62
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x220]
inc eax
mov dword [ebp - 0x220], eax
cmp eax, ecx
jl 0x40de1d
jmp 0x40dee6
mov edx, dword [ebp - 0x220]
push 0x2d
pop ecx
mov eax, dword [esi + edx*4]
mov word [eax], cx
lea eax, [edx + 1]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x228]
mov dword [ebp - 0x220], eax
cmp eax, ecx
jge 0x40dec6
mov eax, dword [esi + eax*4]
movzx eax, word [eax]
cmp word [ebp - 0x22c], ax
je 0x40deb6
cmp word [ebp - 0x230], ax
je 0x40deb6
mov eax, dword [ebp - 0x220]
inc dword [ebp - 0x224]
inc eax
mov dword [ebp - 0x220], eax
cmp eax, ecx
jl 0x40de87
mov eax, dword [ebp - 0x224]
test eax, eax
jle 0x40dec8
inc edx
lea edx, [esi + edx*4]
jmp 0x40deca
mov eax, ebx
mov edx, ebx
cmp eax, edi
je 0x40dedf
mov ecx, dword [esi]
call fcn.0040d4f2
push 0x407658
jmp 0x40ddb0
mov eax, dword [edx]
mov dword [section..data], eax
mov dword [ebp - 0x220], ebx
mov eax, edi
mov dword [ebp - 0x224], edi
cmp ecx, edi
jle 0x40df38
mov edx, dword [esi + eax*4]
movzx edx, word [edx]
cmp word [ebp - 0x22c], dx
je 0x40df10
cmp word [ebp - 0x230], dx
jne 0x40df2d
mov ecx, dword [esi + eax*4]
mov edx, 0x4076d0
add ecx, 2
call fcn.0040bdd5
test eax, eax
je 0x40df9d
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x224]
inc eax
mov dword [ebp - 0x224], eax
cmp eax, ecx
jl 0x40def8
mov dword [ebp - 0x234], ebx
mov eax, edi
mov dword [ebp - 0x220], ebx
mov dword [ebp - 0x224], edi
cmp ecx, edi
jle 0x40e183
mov edx, dword [esi + eax*4]
movzx edx, word [edx]
cmp word [ebp - 0x22c], dx
je 0x40df6c
cmp word [ebp - 0x230], dx
jne 0x40df8d
mov ecx, dword [esi + eax*4]
mov edx, 0x4077b0
add ecx, 2
call fcn.0040bdd5
test eax, eax
je 0x40e04b
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x224]
inc eax
mov dword [ebp - 0x224], eax
cmp eax, ecx
jl 0x40df54
jmp 0x40e183
mov ecx, dword [ebp - 0x224]
push 0x2d
pop edx
mov eax, dword [esi + ecx*4]
lea esi, [ecx + 1]
mov word [eax], dx
mov edx, dword [ebp - 0x228]
cmp esi, dword [ebp + 8]
jge 0x40dff7
mov eax, dword [edx + esi*4]
movzx eax, word [eax]
cmp word [ebp - 0x22c], ax
je 0x40dfe7
cmp word [ebp - 0x230], ax
mov eax, dword [ebp - 0x220]
je 0x40dfed
inc eax
inc esi
mov dword [ebp - 0x220], eax
cmp esi, dword [ebp + 8]
jl 0x40dfba
jmp 0x40dfed
mov eax, dword [ebp - 0x220]
test eax, eax
jle 0x40dff9
inc ecx
lea ecx, [edx + ecx*4]
jmp 0x40dffb
mov eax, ebx
mov ecx, ebx
cmp eax, edi
je 0x40e010
mov ecx, dword [edx]
call fcn.0040d4f2
push 0x4076d8
jmp 0x40ddb0
push dword [ecx]
call dword [sym.imp.msvcrt.dll__wtoi]
mov dword [0x412064], eax
pop ecx
test eax, eax
js 0x40e035
cmp eax, 3
jg 0x40e035
mov esi, dword [ebp - 0x228]
mov ecx, dword [ebp + 8]
jmp 0x40df38
push 3
push ebx
push 0x407738
call dword [sym.imp.msvcrt.dll_wprintf]
add esp, 0xc
jmp 0x40ddb7
mov edx, dword [ebp - 0x224]
push 0x2d
pop ecx
mov eax, dword [esi + edx*4]
mov word [eax], cx
lea eax, [edx + 1]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x228]
mov dword [ebp - 0x224], eax
cmp eax, ecx
jge 0x40e0b5
mov eax, dword [esi + eax*4]
movzx eax, word [eax]
cmp word [ebp - 0x22c], ax
je 0x40e09f
cmp word [ebp - 0x230], ax
je 0x40e09f
mov eax, dword [ebp - 0x224]
inc dword [ebp - 0x220]
inc eax
mov dword [ebp - 0x224], eax
cmp eax, ecx
jl 0x40e070
mov eax, dword [ebp - 0x220]
test eax, eax
jle 0x40e0b7
inc edx
lea edx, [esi + edx*4]
mov dword [ebp - 0x234], edx
jmp 0x40e0b7
mov eax, ebx
mov dword [0x41242c], edi
cmp eax, edi
jle 0x40e0d2
mov ecx, dword [esi]
call fcn.0040d4f2
push 0x4077b8
jmp 0x40ddb0
jne 0x40e183
push 0x6c
call fcn.004102e7
pop ecx
test eax, eax
je 0x40e0ed
mov ecx, eax
call fcn.0040fbbf
jmp 0x40e0ef
mov eax, ebx
mov dword [0x412490], eax
mov eax, dword [ebp - 0x234]
push dword [eax]
lea eax, [ebp - 0x21c]
push 0x407810
push 0x104
push eax
call fcn.0040bd51
mov edi, dword [0x412490]
lea ecx, [ebp - 0x21c]
add esp, 0x10
mov eax, dword [edi]
push 0x23373f
push ecx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4131c0]
mov ecx, edi
call esi
test eax, eax
jne 0x40e154
lea eax, [ebp - 0x21c]
push eax
push 0x407818
call dword [sym.imp.msvcrt.dll_wprintf]
pop ecx
jmp 0x40ddb6
mov edi, dword [0x412490]
mov ecx, dword [0x412064]
mov edx, dword [edi]
call fcn.00409249
mov esi, dword [edx + 0xc]
mov ecx, esi
push eax
call dword [0x4131c0]
mov ecx, edi
call esi
mov esi, dword [ebp - 0x228]
xor edi, edi
mov ecx, dword [ebp + 8]
inc edi
mov dword [ebp - 0x220], ebx
mov eax, edi
mov dword [ebp - 0x224], edi
cmp ecx, edi
jle 0x40e1d5
mov edx, dword [esi + eax*4]
movzx edx, word [edx]
cmp word [ebp - 0x22c], dx
je 0x40e1ad
cmp word [ebp - 0x230], dx
jne 0x40e1ca
mov ecx, dword [esi + eax*4]
mov edx, 0x40786c
add ecx, 2
call fcn.0040bdd5
test eax, eax
je 0x40e234
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x224]
inc eax
mov dword [ebp - 0x224], eax
cmp eax, ecx
jl 0x40e195
mov dword [ebp - 0x220], ebx
mov eax, edi
mov dword [ebp - 0x224], edi
cmp ecx, edi
jle 0x40e367
mov edx, dword [esi + eax*4]
movzx edx, word [edx]
cmp word [ebp - 0x22c], dx
je 0x40e203
cmp word [ebp - 0x230], dx
jne 0x40e224
mov ecx, dword [esi + eax*4]
mov edx, 0x40793c
add ecx, 2
call fcn.0040bdd5
test eax, eax
je 0x40e2d9
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x224]
inc eax
mov dword [ebp - 0x224], eax
cmp eax, ecx
jl 0x40e1eb
jmp 0x40e367
mov ecx, dword [ebp - 0x224]
push 0x2d
pop edx
mov eax, dword [esi + ecx*4]
lea esi, [ecx + 1]
mov word [eax], dx
mov edx, dword [ebp - 0x228]
cmp esi, dword [ebp + 8]
jge 0x40e28e
mov eax, dword [edx + esi*4]
movzx eax, word [eax]
cmp word [ebp - 0x22c], ax
je 0x40e27e
cmp word [ebp - 0x230], ax
mov eax, dword [ebp - 0x220]
je 0x40e284
inc eax
inc esi
mov dword [ebp - 0x220], eax
cmp esi, dword [ebp + 8]
jl 0x40e251
jmp 0x40e284
mov eax, dword [ebp - 0x220]
test eax, eax
jle 0x40e290
inc ecx
lea ecx, [edx + ecx*4]
jmp 0x40e292
mov eax, ebx
mov ecx, ebx
cmp eax, edi
je 0x40e2a7
mov ecx, dword [edx]
call fcn.0040d4f2
push 0x407870
jmp 0x40ddb0
push dword [ecx]
call dword [sym.imp.msvcrt.dll__wtoi]
mov dword [ebp - 0x240], eax
pop ecx
cmp eax, edi
jl 0x40e2cd
cmp eax, 0x40
jg 0x40e2cd
mov esi, dword [ebp - 0x228]
mov ecx, dword [ebp + 8]
jmp 0x40e1d5
push 0x40
push 0x4078d0
jmp 0x40e148
mov edx, dword [ebp - 0x224]
push 0x2d
pop ecx
mov eax, dword [esi + edx*4]
mov word [eax], cx
lea eax, [edx + 1]
mov ecx, dword [ebp + 8]
mov esi, dword [ebp - 0x228]
mov dword [ebp - 0x234], eax
cmp eax, ecx
jge 0x40e33d
mov eax, dword [esi + eax*4]
movzx eax, word [eax]
cmp word [ebp - 0x22c], ax
je 0x40e32d
cmp word [ebp - 0x230], ax
je 0x40e32d
mov eax, dword [ebp - 0x234]
inc dword [ebp - 0x220]
inc eax
mov dword [ebp - 0x234], eax
cmp eax, ecx
jl 0x40e2fe
mov eax, dword [ebp - 0x220]
test eax, eax
jle 0x40e33f
inc edx
lea edx, [esi + edx*4]
jmp 0x40e341
mov eax, ebx
mov edx, ebx
test eax, eax
je 0x40e360
push dword [edx]
call dword [sym.imp.msvcrt.dll__wtoi]
mov esi, dword [ebp - 0x228]
mov dword [0x412060], eax
pop ecx
mov ecx, dword [ebp + 8]
test eax, eax
jne 0x40e367
or dword [0x412060], 0xffffffff
mov dword [ebp - 0x220], ebx
mov eax, edi
mov dword [ebp - 0x224], edi
cmp ecx, edi
jle 0x40e44e
mov edx, dword [esi + eax*4]
movzx edx, word [edx]
cmp word [ebp - 0x22c], dx
je 0x40e395
cmp word [ebp - 0x230], dx
jne 0x40e3b2
mov ecx, dword [esi + eax*4]
mov edx, 0x407940
add ecx, 2
call fcn.0040bdd5
test eax, eax
je 0x40e3c2
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x224]
inc eax
mov dword [ebp - 0x224], eax
cmp eax, ecx
jl 0x40e37d
jmp 0x40e44e
mov edx, dword [ebp - 0x224]
push 0x2d
pop ecx
mov eax, dword [esi + edx*4]
lea esi, [edx + 1]
mov word [eax], cx
mov ecx, dword [ebp - 0x228]
cmp esi, dword [ebp + 8]
jge 0x40e41c
mov eax, dword [ecx + esi*4]
movzx eax, word [eax]
cmp word [ebp - 0x22c], ax
je 0x40e40c
cmp word [ebp - 0x230], ax
mov eax, dword [ebp - 0x220]
je 0x40e412
inc eax
inc esi
mov dword [ebp - 0x220], eax
cmp esi, dword [ebp + 8]
jl 0x40e3df
jmp 0x40e412
mov eax, dword [ebp - 0x220]
test eax, eax
jle 0x40e41e
inc edx
lea edx, [ecx + edx*4]
jmp 0x40e420
mov eax, ebx
mov edx, ebx
cmp eax, edi
je 0x40e435
mov ecx, dword [ecx]
call fcn.0040d4f2
push 0x407948
jmp 0x40ddb0
push dword [edx]
call dword [sym.imp.msvcrt.dll__wtoi]
mov dword [0x412068], eax
pop ecx
test eax, eax
jne 0x40e44e
or dword [0x412068], 0xffffffff
push 0x4079a0
lea ecx, [ebp - 0x25c]
call fcn.0040ec10
test eax, eax
je 0x40e475
or dword [0x412068], 0xffffffff
mov dword [0x412424], edi
mov dword [0x412064], ebx
lea eax, [ebp - 0x244]
push eax
lea ecx, [ebp - 0x25c]
call fcn.0040ed40
test eax, eax
je 0x40e4a8
mov ecx, dword [ebp - 0x228]
mov ecx, dword [ecx]
call fcn.0040d4f2
push dword [ebp - 0x244]
push 0x4079b0
jmp 0x40e148
mov eax, dword [ebp - 0x238]
xor ecx, ecx
push 4
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00410315
pop ecx
mov esi, eax
xor ecx, ecx
mov eax, dword [ebp - 0x240]
push 4
pop edx
mul edx
mov dword [ebp - 0x248], esi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00410315
mov edx, dword [ebp - 0x238]
pop ecx
mov ecx, dword [ebp - 0x250]
mov dword [ebp - 0x22c], eax
sub ecx, esi
mov eax, esi
mov dword [ebp - 0x234], ecx
mov dword [ebp - 0x230], eax
mov dword [ebp - 0x244], edx
lea edx, [ebp - 0x24c]
push edx
jmp 0x40e535
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, dword [ebp - 0x234]
lea eax, [ebp - 0x24c]
push eax
mov eax, dword [ebp - 0x230]
push ebx
push dword [ecx + eax]
push 0x40da40
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [ebp - 0x230]
mov dword [ecx], eax
test eax, eax
je 0x40e517
mov eax, ecx
push 4
pop ecx
add eax, ecx
sub dword [ebp - 0x244], 1
mov ecx, dword [ebp - 0x234]
mov dword [ebp - 0x230], eax
jne 0x40e50e
mov eax, ebx
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x240], eax
jle 0x40e5e7
mov ecx, dword [ebp - 0x22c]
mov dword [ebp - 0x220], ecx
lea ecx, [ebp - 0x24c]
push ecx
push ebx
push eax
jmp 0x40e5ae
push 0x1388
call dword [sym.imp.KERNEL32.dll_Sleep]
lea eax, [ebp - 0x24c]
push eax
push ebx
push dword [ebp - 0x224]
push 0x40db00
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ecx, dword [ebp - 0x220]
mov dword [ecx], eax
test eax, eax
je 0x40e595
mov eax, dword [ebp - 0x224]
push 4
inc eax
pop edx
add ecx, edx
mov dword [ebp - 0x224], eax
mov dword [ebp - 0x220], ecx
cmp eax, dword [ebp - 0x240]
jl 0x40e58a
push 0xffffffffffffffff
push edi
push esi
push dword [ebp - 0x238]
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
push dword [0x4124d8]
call dword [sym.imp.KERNEL32.dll_SetEvent]
push 0xffffffffffffffff
push edi
push dword [ebp - 0x22c]
push dword [ebp - 0x240]
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov ecx, dword [ebp - 0x238]
jmp 0x40e65d
mov dword [ebp - 4], ebx
test esi, esi
je 0x40e69d
mov eax, ebx
mov dword [ebp - 0x248], eax
test ecx, ecx
jle 0x40e696
mov ecx, dword [esi + eax*4]
test ecx, ecx
je 0x40e687
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x248]
mov dword [esi + eax*4], ebx
inc eax
mov dword [ebp - 0x248], eax
cmp eax, dword [ebp - 0x238]
jl 0x40e670
push esi
call fcn.004102e2
pop ecx
mov eax, dword [ebp - 0x22c]
test eax, eax
je 0x40e6d9
cmp dword [ebp - 0x240], 0
mov esi, ebx
jle 0x40e6d2
mov ecx, dword [eax + esi*4]
test ecx, ecx
je 0x40e6c9
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [ebp - 0x22c]
mov dword [eax + esi*4], ebx
inc esi
cmp esi, dword [ebp - 0x240]
jl 0x40e6b2
push eax
call fcn.004102e2
pop ecx
mov eax, dword [ebp - 0x250]
test eax, eax
je 0x40e6ea
push eax
call fcn.004102e2
pop ecx
mov eax, dword [0x412490]
test eax, eax
je 0x40e72c
mov eax, dword [eax]
mov esi, dword [eax + 0x24]
mov ecx, esi
call dword [0x4131c0]
mov ecx, dword [0x412490]
call esi
mov eax, dword [0x412490]
test eax, eax
je 0x40e726
mov eax, dword [eax]
push edi
mov esi, dword [eax]
mov ecx, esi
call dword [0x4131c0]
mov ecx, dword [0x412490]
call esi
mov dword [0x412490], ebx
push dword [ebp - 0x26c]
call dword [sym.imp.msvcrt.dll_int____cdecl___unsigned_int____cdecl__set_new_handler_int____cdecl___unsigned_int__]
pop ecx
xor eax, eax
call fcn.00410d1e
ret