Function at 0x427fb0
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x5f9dd3
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x448
push ebx
push ebp
push esi
mov esi, dword [esp + 0x468]
push edi
mov edi, dword [esp + 0x468]
push esi
xor ebx, ebx
push edi
mov dword [esp + 0x40], ebx
call fcn.0044a250
mov eax, dword [esi + 0x4f0]
add esp, 8
lea ecx, [esp + 0x27]
push ecx
push str.level
lea ecx, [esp + 0x68]
mov dword [esp + 0x74], eax
call fcn.00402f20
lea edx, [esp + 0x60]
push edx
mov ecx, edi
mov dword [esp + 0x464], ebx
call fcn.005b8470
mov ecx, dword [esp + 0x60]
mov ebp, eax
mov eax, dword [esp + 0x68]
sub eax, ecx
cmp ecx, ebx
mov dword [esp + 0x30], ebp
mov dword [esp + 0x460], 0xffffffff
mov esi, ecx
je 0x428073
cmp eax, 0x80
jbe 0x42804d
push ecx
call fcn.005e05ca
jmp 0x428070
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [edi]
mov dword [esi], eax
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
lea ecx, [esp + 0xb0]
call fcn.00402680
mov esi, 1
lea ecx, [esp + 0xa4]
mov dword [esp + 0x460], esi
call fcn.00402680
cmp ebp, ebx
mov byte [esp + 0x460], 2
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], ebx
jle 0x4284aa
nop
lea ecx, [esp + 0xfc]
call fcn.004cb350
mov dword [esp + 0x430], ebx
mov dword [esp + 0x434], ebx
lea ecx, [esp + 0x27]
push ecx
push str.level
lea ecx, [esp + 0x68]
mov byte [esp + 0x468], 3
call fcn.00402f20
lea edx, [esp + 0xa4]
push edx
lea eax, [esp + 0x444]
push eax
lea ecx, [esp + 0x444]
push ecx
lea edx, [esp + 0x444]
push edx
lea eax, [esp + 0x444]
push eax
lea ecx, [esp + 0x444]
push ecx
mov ecx, dword [esp + 0x44]
lea edx, [esp + 0x114]
push edx
lea eax, [esp + 0xcc]
push eax
push ecx
mov ecx, dword [esp + 0x48c]
lea edx, [esp + 0x84]
push edx
mov byte [esp + 0x488], 4
call fcn.004279b0
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x68]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x460], 3
mov esi, ecx
je 0x428193
cmp eax, 0x80
jbe 0x42816d
push ecx
call fcn.005e05ca
jmp 0x428190
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [edi]
mov dword [esi], eax
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
mov ebp, dword [esp + 0xa4]
mov eax, dword [esp + 0xa8]
xor esi, esi
cmp ebp, eax
je 0x4281e8
mov cl, byte [ebp]
cmp cl, 0x31
je 0x4281b4
cmp cl, 0x30
jne 0x4281dc
mov eax, esi
cdq
mov edi, 0x28
idiv edi
cmp cl, 0x31
sete cl
inc esi
cmp esi, 0x320
mov edi, eax
lea edx, [edx + edx*4]
lea eax, [edi + edx*4]
mov byte [esp + eax + 0x110], cl
jge 0x4281e8
mov eax, dword [esp + 0xa8]
inc ebp
cmp ebp, eax
jne 0x4281a7
mov eax, dword [0x655dfc]
cmp dword [eax], eax
je 0x428232
lea ecx, [esp + 0xb0]
push ecx
lea ecx, [esp + 0x48]
call fcn.004cb6d0
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
lea edx, [esp + 0x44]
push edx
add eax, 8
or ebp, 1
push eax
mov byte [esp + 0x468], 5
mov dword [esp + 0x40], ebp
call fcn.004cb2f0
add esp, 8
test al, al
mov byte [esp + 0x27], bl
jne 0x428237
mov byte [esp + 0x27], 1
test byte [esp + 0x38], 1
mov dword [esp + 0x460], 3
je 0x428297
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
and esi, 0xfffffffe
sub eax, edi
cmp edi, ebx
mov dword [esp + 0x38], esi
je 0x428297
cmp eax, 0x80
jbe 0x428271
push edi
call fcn.005e05ca
jmp 0x428294
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [esi]
mov dword [edi], ecx
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
cmp byte [esp + 0x27], bl
je 0x428395
lea ecx, [esp + 0xbc]
call fcn.004cb350
mov dword [esp + 0xd4], ebx
mov dword [esp + 0xd8], ebx
mov dword [esp + 0xdc], ebx
mov dword [esp + 0xe0], ebx
mov dword [esp + 0xe4], ebx
mov dword [esp + 0xe8], ebx
mov dword [esp + 0xec], ebx
mov dword [esp + 0xf0], ebx
lea edx, [esp + 0xb0]
push edx
lea ecx, [esp + 0xc0]
mov byte [esp + 0x464], 6
call fcn.004cb720
mov esi, dword [0x655dfc]
lea eax, [esp + 0xbc]
push eax
mov ecx, 0x655dfc
call fcn.00427ee0
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
mov dword [eax], esi
mov dword [ecx], eax
lea ecx, [esp + 0xe8]
mov dword [esi + 4], eax
mov dword [esp + 0x34], eax
mov byte [esp + 0x460], 3
call fcn.004136b0
lea ecx, [esp + 0xdc]
call fcn.00427550
mov ecx, dword [esp + 0xbc]
mov eax, dword [esp + 0xc4]
sub eax, ecx
cmp ecx, ebx
mov esi, ecx
je 0x428395
cmp eax, 0x80
jbe 0x42836f
push ecx
call fcn.005e05ca
jmp 0x428392
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [edi]
mov dword [esi], ecx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
mov edx, dword [esp + 0x34]
mov al, byte [esp + 0x43c]
add edx, 8
xor ecx, ecx
cmp al, bl
mov dword [esp + 0x450], edx
mov dword [esp + 0x454], ecx
je 0x4283e2
mov edx, dword [0x655e08]
mov eax, dword [edx]
cmp eax, edx
je 0x42840d
mov ebp, dword [esp + 0x2c]
cmp ecx, ebx
je 0x4283d0
cmp ebp, dword [eax + 0x18]
jl 0x4283da
lea ecx, [eax + 8]
mov dword [esp + 0x454], ecx
mov eax, dword [eax]
cmp eax, edx
jne 0x4283c7
jmp 0x428411
mov edx, dword [0x655e04]
mov eax, dword [edx]
cmp eax, edx
je 0x42840d
mov ebp, dword [esp + 0x2c]
cmp ecx, ebx
je 0x4283fb
cmp ebp, dword [eax + 0x18]
jl 0x428405
lea ecx, [eax + 8]
mov dword [esp + 0x454], ecx
mov eax, dword [eax]
cmp eax, edx
jne 0x4283f2
jmp 0x428411
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
mov esi, dword [0x655e00]
mov dword [esp + 0x10c], eax
inc eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0xfc]
push eax
mov ecx, 0x655e00
call fcn.00427920
mov ecx, dword [esi + 4]
mov dword [eax], esi
mov dword [eax + 4], ecx
mov dword [ecx], eax
mov dword [esi + 4], eax
mov ecx, dword [esp + 0xfc]
mov eax, dword [esp + 0x104]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x460], 2
mov esi, ecx
je 0x428499
cmp eax, 0x80
jbe 0x428473
push ecx
call fcn.005e05ca
jmp 0x428496
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [edi]
mov dword [esi], ecx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
mov eax, dword [esp + 0x30]
inc ebp
cmp ebp, eax
mov dword [esp + 0x2c], ebp
jl 0x4280b0
lea edx, [esp + 0x27]
push edx
push str.config_drop
lea ecx, [esp + 0x68]
call fcn.00402f20
mov ecx, dword [esp + 0x468]
lea eax, [esp + 0x60]
push eax
mov byte [esp + 0x464], 7
call fcn.005b8470
mov ecx, dword [esp + 0x60]
mov ebp, eax
mov eax, dword [esp + 0x68]
sub eax, ecx
cmp ecx, ebx
mov dword [esp + 0x30], ebp
mov byte [esp + 0x460], 2
mov esi, ecx
je 0x428529
cmp eax, 0x80
jbe 0x428503
push ecx
call fcn.005e05ca
jmp 0x428526
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [edi]
mov dword [esi], ecx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
cmp ebp, ebx
mov dword [esp + 0x2c], ebx
jle 0x42891c
jmp 0x428540
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
push 8
mov byte [esp + 0x464], 8
call fcn.00401cc0
lea edx, [eax + 8]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
mov byte [eax], bl
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
push 8
mov byte [esp + 0x468], 0xa
call fcn.00401cc0
lea ecx, [eax + 8]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], ecx
add esp, 8
mov byte [eax], bl
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
lea edx, [esp + 0x27]
push edx
push str.config_drop
lea ecx, [esp + 0x4c]
mov byte [esp + 0x468], 0xc
mov dword [esp + 0x30], ebx
call fcn.00402f20
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x5c]
push edx
lea eax, [esp + 0x8c]
push eax
push ecx
mov ecx, dword [esp + 0x47c]
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x478], 0xd
call fcn.00427b10
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
sub eax, ecx
cmp ecx, ebx
mov esi, ecx
je 0x428640
cmp eax, 0x80
jbe 0x42861a
push ecx
call fcn.005e05ca
jmp 0x42863d
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [edi]
mov dword [esi], eax
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
dec dword [esp + 0x80]
jns 0x428650
mov dword [esp + 0x80], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x468], 0xf
call fcn.00491b20
mov esi, eax
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.00491b20
add esp, 0x10
cmp eax, esi
jg 0x428975
mov edi, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
sub eax, edi
sar eax, 2
xor esi, esi
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x34], eax
jbe 0x428748
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + edi*4]
mov edx, dword [esp + 0x98]
mov edx, dword [edx + edi*4]
add eax, esi
mov ebp, esi
lea esi, [eax - 1]
mov dword [esp + 0x68], esi
mov esi, eax
cmp ecx, dword [esp + 0x78]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ebp
je 0x428720
cmp ecx, ebx
je 0x428717
mov eax, ecx
mov dword [eax], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 4], ebp
mov dword [eax + 8], edx
add ecx, 0xc
mov dword [esp + 0x74], ecx
jmp 0x42873f
push 1
push 1
lea eax, [esp + 0x2f]
push eax
lea edx, [esp + 0x6c]
push edx
push ecx
lea ecx, [esp + 0x84]
call fcn.004250c0
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x34]
inc edi
cmp edi, eax
jb 0x4286d6
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x78]
lea ecx, [esp + 0x70]
push ecx
mov dword [esp + 0x80], esi
mov esi, dword [0x655e04]
mov ecx, 0x655e04
mov dword [esp + 0x88], eax
call fcn.00425600
mov ecx, dword [esi + 4]
mov dword [eax], esi
mov dword [eax + 4], ecx
mov dword [ecx], eax
mov dword [esi + 4], eax
mov ecx, dword [esp + 0x8c]
cmp ecx, ebx
je 0x4287d1
mov eax, dword [esp + 0x94]
sub eax, ecx
sar eax, 2
shl eax, 2
cmp eax, 0x80
mov edi, ecx
jbe 0x4287ab
push ecx
call fcn.005e05ca
jmp 0x4287ce
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov edx, dword [esi]
mov dword [edi], edx
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov edi, dword [esp + 0x98]
cmp edi, ebx
je 0x428820
mov eax, dword [esp + 0xa0]
sub eax, edi
sar eax, 2
shl eax, 2
cmp eax, 0x80
jbe 0x4287fa
push edi
call fcn.005e05ca
jmp 0x42881d
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [esi]
mov dword [edi], eax
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov esi, dword [esp + 0x70]
cmp esi, ebx
je 0x428877
sub ebp, esi
mov ecx, ebp
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
shl eax, 2
cmp eax, 0x80
jbe 0x428851
push esi
call fcn.005e05ca
jmp 0x428874
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [edi]
mov dword [esi], ecx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
mov edi, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
sub eax, edi
cmp edi, ebx
je 0x4288ba
cmp eax, 0x80
jbe 0x428894
push edi
call fcn.005e05ca
jmp 0x4288b7
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov edx, dword [esi]
mov dword [edi], edx
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x460], 2
mov edi, ecx
je 0x428907
cmp eax, 0x80
jbe 0x4288e1
push ecx
call fcn.005e05ca
jmp 0x428904
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [esi]
mov dword [edi], eax
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x428540
lea edx, [esp + 0x27]
push edx
push str.config_bonus_drop
lea ecx, [esp + 0x4c]
call fcn.00402f20
mov ecx, dword [esp + 0x468]
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x464], 0x10
call fcn.005b8470
mov ecx, dword [esp + 0x44]
mov ebp, eax
mov eax, dword [esp + 0x4c]
sub eax, ecx
cmp ecx, ebx
mov dword [esp + 0x30], ebp
mov byte [esp + 0x460], 2
mov esi, ecx
je 0x4289b2
cmp eax, 0x80
jbe 0x42898c
push ecx
call fcn.005e05ca
jmp 0x4289af
push 0x638868
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x30], str.Elements_size_is_greater_then_distribution_size_
call fcn.005e1334
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [edi]
mov dword [esi], ecx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
cmp ebp, ebx
mov dword [esp + 0x2c], ebx
jle 0x428deb
mov edi, edi
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
push 0x655bd8
call fcn.00401450
add esp, 4
mov eax, dword [0x655be0]
cmp eax, ebx
mov byte [esp + 0x460], 0x12
je 0x4289f4
mov edx, dword [eax]
mov dword [0x655be0], edx
jmp 0x4289fe
push 8
call fcn.00401720
add esp, 4
lea ecx, [eax + 8]
mov dword [0x655bd8], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov byte [eax], bl
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
push 0x655bd8
call fcn.00401450
add esp, 4
mov eax, dword [0x655be0]
cmp eax, ebx
mov byte [esp + 0x460], 0x15
je 0x428a49
mov edx, dword [eax]
mov dword [0x655be0], edx
jmp 0x428a53
push 8
call fcn.00401720
add esp, 4
lea ecx, [eax + 8]
mov dword [0x655bd8], ebx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov byte [eax], bl
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x78], ebx
lea edx, [esp + 0x27]
push edx
push str.config_bonus_drop
lea ecx, [esp + 0x4c]
mov byte [esp + 0x468], 0x17
mov dword [esp + 0x30], ebx
call fcn.00402f20
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x58]
push ecx
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x8c]
push eax
push ecx
mov ecx, dword [esp + 0x47c]
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x478], 0x18
call fcn.00427b10
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
sub eax, ecx
cmp ecx, ebx
mov esi, ecx
je 0x428b0f
cmp eax, 0x80
jbe 0x428ae9
push ecx
call fcn.005e05ca
jmp 0x428b0c
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [edi]
mov dword [esi], eax
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
dec dword [esp + 0x80]
jns 0x428b1f
mov dword [esp + 0x80], ebx
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ebx
mov dword [esp + 0xa0], ebx
mov dword [esp + 0x8c], ebx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
lea ecx, [esp + 0x8c]
push ecx
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x468], 0x1a
call fcn.00491b20
mov esi, eax
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x44]
push ecx
call fcn.00491b20
add esp, 0x10
cmp eax, esi
jg 0x428e44
mov edi, dword [esp + 0x98]
mov eax, dword [esp + 0x9c]
sub eax, edi
sar eax, 2
xor esi, esi
xor edi, edi
cmp eax, ebx
mov dword [esp + 0x34], eax
jbe 0x428c17
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x8c]
mov eax, dword [eax + edi*4]
mov edx, dword [esp + 0x98]
mov edx, dword [edx + edi*4]
add eax, esi
mov ebp, esi
lea esi, [eax - 1]
mov dword [esp + 0x68], esi
mov esi, eax
cmp ecx, dword [esp + 0x78]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ebp
je 0x428bef
cmp ecx, ebx
je 0x428be6
mov eax, ecx
mov dword [eax], edx
mov edx, dword [esp + 0x68]
mov dword [eax + 4], ebp
mov dword [eax + 8], edx
add ecx, 0xc
mov dword [esp + 0x74], ecx
jmp 0x428c0e
push 1
push 1
lea eax, [esp + 0x2f]
push eax
lea edx, [esp + 0x6c]
push edx
push ecx
lea ecx, [esp + 0x84]
call fcn.004250c0
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x34]
inc edi
cmp edi, eax
jb 0x428ba5
mov eax, dword [esp + 0x28]
mov ebp, dword [esp + 0x78]
lea ecx, [esp + 0x70]
push ecx
mov dword [esp + 0x80], esi
mov esi, dword [0x655e08]
mov ecx, 0x655e08
mov dword [esp + 0x88], eax
call fcn.00425600
mov ecx, dword [esi + 4]
mov dword [eax], esi
mov dword [eax + 4], ecx
mov dword [ecx], eax
mov dword [esi + 4], eax
mov ecx, dword [esp + 0x8c]
cmp ecx, ebx
je 0x428ca0
mov eax, dword [esp + 0x94]
sub eax, ecx
sar eax, 2
shl eax, 2
cmp eax, 0x80
mov edi, ecx
jbe 0x428c7a
push ecx
call fcn.005e05ca
jmp 0x428c9d
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov edx, dword [esi]
mov dword [edi], edx
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov edi, dword [esp + 0x98]
cmp edi, ebx
je 0x428cef
mov eax, dword [esp + 0xa0]
sub eax, edi
sar eax, 2
shl eax, 2
cmp eax, 0x80
jbe 0x428cc9
push edi
call fcn.005e05ca
jmp 0x428cec
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [esi]
mov dword [edi], eax
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov esi, dword [esp + 0x70]
cmp esi, ebx
je 0x428d46
sub ebp, esi
mov ecx, ebp
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*2]
shl eax, 2
cmp eax, 0x80
jbe 0x428d20
push esi
call fcn.005e05ca
jmp 0x428d43
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [edi]
mov dword [esi], ecx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
mov edi, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
sub eax, edi
cmp edi, ebx
je 0x428d89
cmp eax, 0x80
jbe 0x428d63
push edi
call fcn.005e05ca
jmp 0x428d86
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov edx, dword [esi]
mov dword [edi], edx
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x460], 2
mov edi, ecx
je 0x428dd6
cmp eax, 0x80
jbe 0x428db0
push ecx
call fcn.005e05ca
jmp 0x428dd3
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [esi]
mov dword [edi], eax
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x4289c0
lea edx, [esp + 0x27]
push edx
push str.edge
lea ecx, [esp + 0x4c]
call fcn.00402f20
mov ecx, dword [esp + 0x468]
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x464], 0x1b
call fcn.005b8470
mov ecx, dword [esp + 0x44]
mov ebp, eax
mov eax, dword [esp + 0x4c]
sub eax, ecx
cmp ecx, ebx
mov dword [esp + 0x30], ebp
mov byte [esp + 0x460], 2
mov esi, ecx
je 0x428e81
cmp eax, 0x80
jbe 0x428e5b
push ecx
call fcn.005e05ca
jmp 0x428e7e
push 0x638868
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x30], str.Elements_size_is_greater_then_distribution_size_
call fcn.005e1334
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [edi]
mov dword [esi], ecx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
cmp ebp, ebx
mov dword [esp + 0x2c], ebx
jle 0x4290f2
lea ecx, [ecx]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
push 0x655bd8
call fcn.00401450
add esp, 4
mov eax, dword [0x655be0]
cmp eax, ebx
mov byte [esp + 0x460], 0x1d
je 0x428ec4
mov edx, dword [eax]
mov dword [0x655be0], edx
jmp 0x428ece
push 8
call fcn.00401720
add esp, 4
lea ecx, [eax + 8]
mov dword [0x655bd8], ebx
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], ecx
mov byte [eax], bl
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
push 0x655bd8
call fcn.00401450
add esp, 4
mov eax, dword [0x655be0]
cmp eax, ebx
mov byte [esp + 0x460], 0x20
je 0x428f19
mov edx, dword [eax]
mov dword [0x655be0], edx
jmp 0x428f23
push 8
call fcn.00401720
add esp, 4
lea ecx, [eax + 8]
mov dword [0x655bd8], ebx
mov dword [esp + 0x38], eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov byte [eax], bl
lea edx, [esp + 0x27]
push edx
push str.edge
lea ecx, [esp + 0x4c]
mov byte [esp + 0x468], 0x21
call fcn.00402f20
mov edx, dword [esp + 0x2c]
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x470]
push edx
lea eax, [esp + 0x50]
push eax
mov byte [esp + 0x470], 0x22
call fcn.00427c00
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x460], 0x21
mov esi, ecx
je 0x428fca
cmp eax, 0x80
jbe 0x428fa4
push ecx
call fcn.005e05ca
jmp 0x428fc7
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [edi]
mov dword [esi], ecx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
mov ebp, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
xor esi, esi
cmp ebp, ecx
mov eax, ebp
mov dword [esp + 0x28], eax
je 0x42901c
mov edi, edi
mov cl, byte [eax]
cmp cl, 0x31
je 0x428fec
cmp cl, 0x30
jne 0x42900f
mov eax, esi
cdq
mov edi, 3
idiv edi
cmp cl, 0x31
mov edi, eax
sete al
inc esi
cmp esi, 6
lea ecx, [edi + edx*2]
mov byte [esp + ecx + 0x60], al
jge 0x42901c
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x3c]
inc eax
cmp eax, ecx
mov dword [esp + 0x28], eax
jne 0x428fe0
mov ecx, dword [esp + 0x6c]
lea edx, [esp + 0x54]
push edx
call fcn.00512740
mov esi, dword [0x655e0c]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x60]
push eax
mov ecx, 0x655e0c
call fcn.00425260
mov ecx, dword [esi + 4]
mov dword [eax], esi
mov dword [eax + 4], ecx
mov dword [ecx], eax
mov dword [esi + 4], eax
mov eax, dword [esp + 0x40]
sub eax, ebp
cmp ebp, ebx
je 0x429090
cmp eax, 0x80
jbe 0x429069
push ebp
call fcn.005e05ca
jmp 0x42908d
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [esi]
mov dword [ebp], ecx
mov dword [esi], ebp
mov dword [0x655bd8], ebx
add esp, 4
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x5c]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x460], 2
mov edi, ecx
je 0x4290dd
cmp eax, 0x80
jbe 0x4290b7
push ecx
call fcn.005e05ca
jmp 0x4290da
lea esi, [eax - 1]
shr esi, 3
push 0x655bd8
lea esi, [esi*4 + 0x655be0]
call fcn.00401450
mov edx, dword [esi]
mov dword [edi], edx
mov dword [esi], edi
mov dword [0x655bd8], ebx
add esp, 4
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x428e90
mov eax, dword [0x655dfc]
mov ebp, dword [eax]
lea ecx, [esp + 0x27]
push ecx
push str.location_image
lea ecx, [esp + 0x4c]
mov dword [esp + 0x3c], ebx
call fcn.00402f20
mov ecx, dword [esp + 0x468]
lea edx, [esp + 0x44]
push edx
mov byte [esp + 0x464], 0x23
call fcn.005b8470
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x4c]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x460], 2
mov esi, ecx
je 0x42917a
cmp eax, 0x80
jbe 0x429154
push ecx
call fcn.005e05ca
jmp 0x429177
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov eax, dword [edi]
mov dword [esi], eax
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
cmp dword [esp + 0x30], ebx
mov dword [esp + 0x2c], ebx
jle 0x429338
lea ecx, [esp + 0x7c]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], ebx
mov dword [esp + 0x74], ebx
push 0x655bd8
call fcn.00401450
add esp, 4
mov eax, dword [0x655be0]
cmp eax, ebx
mov byte [esp + 0x460], 0x25
je 0x4291c0
mov edx, dword [eax]
mov dword [0x655be0], edx
jmp 0x4291ca
push 8
call fcn.00401720
add esp, 4
lea ecx, [eax + 8]
mov dword [0x655bd8], ebx
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov byte [eax], bl
lea edx, [esp + 0x27]
push edx
push str.location_image
lea ecx, [esp + 0x4c]
mov byte [esp + 0x468], 0x26
call fcn.00402f20
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x7c]
push ecx
lea edx, [esp + 0x78]
push edx
mov edx, dword [esp + 0x38]
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x47c]
push edx
lea eax, [esp + 0x5c]
push eax
mov byte [esp + 0x47c], 0x27
call fcn.00427ca0
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x4c]
sub eax, ecx
cmp ecx, ebx
mov byte [esp + 0x460], 0x26
mov esi, ecx
je 0x42928c
cmp eax, 0x80
jbe 0x429266
push ecx
call fcn.005e05ca
jmp 0x429289
lea edi, [eax - 1]
shr edi, 3
push 0x655bd8
lea edi, [edi*4 + 0x655be0]
call fcn.00401450
mov ecx, dword [edi]
mov dword [esi], ecx
mov dword [edi], esi
mov dword [0x655bd8], ebx
add esp, 4
mov ecx, dword [0x655dfc]
mov edx, dword [esp + 0x28]
mov esi, dword [ecx]
dec edx
xor edi, edi
cmp esi, ecx
mov dword [esp + 0x28], edx
mov eax, esi
je 0x429312
mov eax, dword [eax]
inc edi
cmp eax, ecx
jne 0x4292a5
cmp edx, edi
jae 0x429312
cmp edx, ebx
jl 0x429312
cmp edx, dword [esp + 0x34]
je 0x4292da
cmp edx, ebx
mov ebp, esi
jle 0x4292ca
mov eax, edx
dec eax
mov ebp, dword [ebp]
jne 0x4292c2
jmp 0x4292d6
je 0x4292d6
mov eax, edx
neg eax
dec eax
mov ebp, dword [ebp + 4]
jne 0x4292d0
mov dword [esp + 0x34], edx
mov eax, dword [ebp + 0x2c]
mov ecx, dword [ebp + 0x30]
cmp eax, ecx
lea esi, [ebp + 0x28]
lea edx, [esp + 0x70]
je 0x429300
push edx
push eax
call fcn.004272f0
mov eax, dword [esi + 4]
add esp, 8
add eax, 0x1c
mov dword [esi + 4], eax
jmp 0x429312
push 1
push 1
lea ecx, [esp + 0x2f]
push ecx
push edx
push eax
mov ecx, esi
call fcn.004277d0
lea ecx, [esp + 0x70]
mov byte [esp + 0x460], 2
call fcn.004255b0
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
inc eax
cmp eax, ecx
mov dword [esp + 0x2c], eax
jl 0x429190
lea eax, [esp + 0x27]
push eax
push str.location_config
lea ecx, [esp + 0x4c]
call fcn.00402f20
lea ecx, [esp + 0x44]
push ecx
mov ecx, dword [esp + 0x46c]
mov byte [esp + 0x464], 0x28
call fcn.005b8470
mov esi, eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x30], esi
mov byte [esp + 0x460], 2
call fcn.0041d780
xor ebp, ebp
cmp esi, ebx
jle 0x429456
lea edx, [esp + 0x27]
push edx
push str.location_config
lea ecx, [esp + 0x4c]
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
call fcn.00402f20
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x47c]
push ebp
lea edx, [esp + 0x5c]
push edx
mov byte [esp + 0x47c], 0x29
call fcn.00425290
lea ecx, [esp + 0x44]
mov byte [esp + 0x460], 2
call fcn.0041d780
mov edx, dword [0x655dfc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx]
dec esi
xor edi, edi
cmp eax, edx
mov dword [esp + 0x28], esi
mov ecx, eax
je 0x429449
lea ecx, [ecx]
mov ecx, dword [ecx]
inc edi
cmp ecx, edx
jne 0x429400
cmp esi, edi
jae 0x429449
cmp esi, ebx
jl 0x429449
jle 0x429418
dec esi
mov eax, dword [eax]
jne 0x429411
jmp 0x429426
cmp esi, ebx
je 0x429426
neg esi
mov edi, edi
dec esi
mov eax, dword [eax + 4]
jne 0x429420
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x38]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 0x20], edx
mov edx, dword [esp + 0x34]
mov dword [eax + 0x24], ecx
mov ecx, dword [esp + 0x2c]
mov dword [eax + 0x40], edx
mov dword [eax + 0x44], ecx
mov eax, dword [esp + 0x30]
inc ebp
cmp ebp, eax
jl 0x429385
lea edx, [esp + 0x27]
push edx
push str.path
lea ecx, [esp + 0x4c]
call fcn.00402f20
mov ecx, dword [esp + 0x468]
lea eax, [esp + 0x44]
push eax
mov byte [esp + 0x464], 0x2a
call fcn.005b8470
mov esi, eax
lea ecx, [esp + 0x44]
mov dword [esp + 0x30], esi
mov byte [esp + 0x460], 2
call fcn.0041d780
xor ebp, ebp
cmp esi, ebx
jle 0x4295b2
lea ecx, [esp + 0x8c]
call fcn.00402680
lea ecx, [esp + 0x27]
push ecx
push str.path
lea ecx, [esp + 0x4c]
mov byte [esp + 0x468], 0x2b
call fcn.00402f20
lea edx, [esp + 0x8c]
push edx
lea eax, [esp + 0x2c]
push eax
push ebp
lea ecx, [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x478]
mov byte [esp + 0x470], 0x2c
call fcn.00427db0
lea ecx, [esp + 0x44]
mov byte [esp + 0x460], 0x2b
call fcn.0041d780
mov edx, dword [0x655dfc]
mov esi, dword [esp + 0x28]
mov eax, dword [edx]
dec esi
xor edi, edi
cmp eax, edx
mov dword [esp + 0x28], esi
mov ecx, eax
je 0x429591
nop
mov ecx, dword [ecx]
inc edi
cmp ecx, edx
jne 0x429520
cmp esi, edi
jae 0x429591
cmp esi, ebx
jl 0x429591
jle 0x429538
dec esi
mov eax, dword [eax]
jne 0x429531
jmp 0x429546
cmp esi, ebx
je 0x429546
neg esi
mov edi, edi
dec esi
mov eax, dword [eax + 4]
jne 0x429540
mov ecx, dword [eax + 0x38]
lea esi, [eax + 0x34]
cmp ecx, dword [esi + 8]
je 0x429578
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x34], ecx
cmp ecx, ebx
mov byte [esp + 0x460], 0x2d
je 0x429572
lea edx, [esp + 0x8c]
push edx
call fcn.00404e60
add dword [esi + 4], 0xc
jmp 0x429591
push 1
push 1
lea eax, [esp + 0x2f]
push eax
lea edx, [esp + 0x98]
push edx
push ecx
mov ecx, esi
call fcn.00413520
lea ecx, [esp + 0x8c]
mov byte [esp + 0x460], 2
call fcn.0041d780
mov eax, dword [esp + 0x30]
inc ebp
cmp ebp, eax
jl 0x4294a3
lea eax, [esp + 0x27]
push eax
push str.config_element_creation
lea ecx, [esp + 0x4c]
call fcn.00402f20
mov edi, dword [esp + 0x468]
lea ecx, [esp + 0x44]
push ecx
mov ecx, edi
mov byte [esp + 0x464], 0x2e
call fcn.005b8470
lea ecx, [esp + 0x44]
mov ebp, eax
mov byte [esp + 0x460], 2
call fcn.0041d780
xor esi, esi
cmp ebp, ebx
jle 0x42968a
lea ecx, [ecx]
lea edx, [esp + 0x27]
push edx
push str.config_element_creation
lea ecx, [esp + 0x4c]
call fcn.00402f20
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x34]
push eax
push esi
lea ecx, [esp + 0x58]
push ecx
mov ecx, edi
mov byte [esp + 0x478], 0x2f
call fcn.004253a0
lea ecx, [esp + 0x44]
mov byte [esp + 0x460], 2
call fcn.0041d780
mov eax, dword [esp + 0x28]
dec eax
push eax
mov dword [esp + 0x2c], eax
call fcn.00424e20
add esp, 4
cmp eax, ebx
je 0x429681
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x34]
mov dword [eax + 0x350], edx
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x348], ecx
mov dword [eax + 0x34c], edx
inc esi
cmp esi, ebp
jl 0x429600
mov edx, dword [0x655dfc]
mov eax, dword [edx]
cmp eax, edx
mov ecx, 1
je 0x4296aa
jmp 0x4296a0
mov dword [eax + 0x1c], ecx
mov eax, dword [eax]
inc ecx
cmp eax, edx
jne 0x4296a0
lea ecx, [esp + 0xa4]
call fcn.0041d780
lea ecx, [esp + 0xb0]
call fcn.0041d780
mov ecx, dword [esp + 0x458]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x454
ret