Function at 0x421c90
Capabilities:
Encrypt data using speck

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48707c
mov eax, dword fs:[0]
push eax
sub esp, 0x120
mov eax, dword [0x4ae084]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
xor edi, edi
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x28], edi
call fcn.0044e1d0
mov dword [ebp - 4], edi
mov eax, dword [ebx + 0x35800]
cmp eax, 0x57
jg 0x422b2c
je 0x422aa7
cmp eax, 0x55
ja case.0x423151.15
movzx eax, byte [eax + 0x423640]
jmp dword [eax*4 + 0x423624]
push str.cgbase.bmp
push ebx
call fcn.004174c0
push edi
push 8
push str.cgchip.kg
push ebx
call fcn.00417210
push edi
push 0xd
push str.cgchip2.kg
push ebx
call fcn.00417210
push edi
push 0xf
push str.cgchip3.kg
push ebx
call fcn.00417210
push edi
push 0x12
push str.cgchip4.kg
push ebx
call fcn.00417210
push ebx
call fcn.0043a8d0
mov eax, 7
mov edi, ebx
call fcn.0042ee60
mov esi, 0x4e1e58
lea ebx, [ebx]
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x38], esp
push 0
call fcn.0044fa00
lea edi, [esi - 0x90]
call fcn.0044fa20
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x38], esp
push 0
call fcn.0044fa00
mov edi, esi
call fcn.0044fa20
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x38], esp
push 1
call fcn.0044fa00
lea edi, [esi + 0x90]
call fcn.0044fa20
add esi, 0xc
cmp esi, 0x4e1ee8
jl 0x421d60
sub esp, 0xc
xor esi, esi
mov eax, esp
mov dword [ebp - 0x38], esp
push esi
mov dword [0x4e1d94], esi
mov dword [0x4e1d98], esi
call fcn.0044fa00
mov edi, 0x4e1f78
call fcn.0044fa20
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x38], esp
push esi
call fcn.0044fa00
mov edi, 0x4e1f84
call fcn.0044fa20
mov byte [0x4e1db0], 1
mov dword [0x4e1f90], esi
mov eax, 0x4e2068
jmp 0x421e10
mov dword [eax - 0xd4], 0xffffffff
mov dword [eax], 0xffffffff
add eax, 4
cmp eax, 0x4e213c
jl 0x421e10
mov dword [0x4e1d90], 0xffffffff
mov dword [ebp - 0x2c], esi
mov dword [ebp - 0x30], esi
mov eax, 0x4cc9d4
nop
mov dword [ebp - 0x48], 5
jmp 0x421e50
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x4c], 0xc
lea ebx, [ebx]
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax - 4]
mov eax, dword [eax]
cmp ecx, 0xffffffff
je 0x421eca
test eax, eax
jle 0x421eca
add dword [ebp - 0x2c], eax
test eax, eax
jle 0x421eca
lea ecx, [ecx + ecx*2 + 0xda10]
lea edi, [ebx + ecx*4]
mov dword [ebp - 0x24], eax
jmp 0x421e90
push 1
lea eax, [ebp - 0xbc]
call fcn.0044fa00
mov esi, eax
call fcn.0044f9d0
sub esp, 0xc
mov ecx, eax
mov eax, esp
mov dword [ebp - 0x38], esp
push ecx
call fcn.0044fa00
mov eax, edi
call fcn.0044fa50
test al, al
je 0x421ec2
inc dword [ebp - 0x30]
add edi, 0xc
dec dword [ebp - 0x24]
jne 0x421e90
add dword [ebp - 0x34], 8
dec dword [ebp - 0x4c]
jne 0x421e60
dec dword [ebp - 0x48]
mov eax, dword [ebp - 0x34]
jne 0x421e50
cmp eax, 0x4cde74
jl 0x421e40
mov edx, dword [ebp - 0x2c]
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x38], esp
push edx
call fcn.0044fa00
mov edi, 0x4e1f84
call fcn.0044fa20
mov esi, dword [ebp - 0x30]
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x38], esp
push esi
call fcn.0044fa00
mov edi, 0x4e1f78
call fcn.0044fa20
mov eax, esi
imul eax, eax, 0x64
cdq
idiv dword [ebp - 0x2c]
mov ecx, eax
mov dword [ebp - 0x2c], ecx
cmp ecx, 0x64
jle 0x421f3c
mov dword [ebp - 0x2c], 0x64
jmp 0x421f50
test ecx, ecx
jns 0x421f47
xor ecx, ecx
jmp 0x421ff5
cmp ecx, 0x64
jne 0x421ff5
lea ecx, [ebp - 0xe0]
call fcn.0044e1d0
lea edi, [ebx + 0x5d624]
mov esi, edi
call fcn.0044f9d0
lea ecx, [ebp - 0xe0]
mov esi, eax
mov byte [ebp - 4], 0
call fcn.0044e300
lea ecx, [ebp - 0x104]
or esi, 1
call fcn.0044e1d0
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x38], esp
push esi
mov dword [ebx + 0x358e0], esi
call fcn.0044fa00
call fcn.0044fa20
lea ecx, [ebp - 0x104]
mov byte [ebp - 4], 0
call fcn.0044e300
cmp esi, 3
jne 0x421ff2
lea ecx, [ebp - 0x128]
call fcn.0044e1d0
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x38], esp
push 1
mov dword [ebx + 0x358e8], 1
call fcn.0044fa00
lea edi, [ebx + 0x5d63c]
call fcn.0044fa20
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 0
call fcn.0044e300
mov ecx, dword [ebp - 0x2c]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*4]
mov esi, eax
add edx, edx
sub ecx, edx
mov eax, 0x66666667
imul esi
sar edx, 2
mov dword [ebp - 0x18], ecx
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
lea eax, [ecx + ecx*4]
add eax, eax
sub esi, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea edx, [eax + eax*4]
add edx, edx
sub ecx, edx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x20], ecx
xor eax, eax
lea ebx, [ebx]
cmp dword [ebp + eax*4 - 0x20], 0
jne 0x422065
mov dword [ebp + eax*4 - 0x20], 0xa
inc eax
cmp eax, 2
jl 0x422050
xor esi, esi
mov dword [ebp - 0x30], 0x15d
mov dword [ebp - 0x24], esi
mov eax, dword [esi + 0x4e1f9c]
or ecx, 0xffffffff
cmp eax, ecx
je 0x42209e
cmp eax, 0x18f
ja 0x422098
imul eax, eax, 0xbc
mov byte [eax + 0x4f1dbc], 0
mov dword [eax + 0x4f1dc0], ecx
mov dword [esi + 0x4e1f9c], ecx
mov edi, 0x4f1dbc
xor eax, eax
cmp byte [edi], 0
je 0x42211f
inc eax
add edi, 0xbc
cmp eax, 0x190
jl 0x4220a5
mov eax, ecx
xor edx, edx
mov dword [esi + 0x4e1f9c], eax
cmp eax, 0xffffffff
je 0x4220f5
mov dword [esi + 0x4e2070], edx
mov ecx, dword [esi + 0x4e1f9c]
cmp ecx, 0xffffffff
je 0x4220f5
mov eax, dword [ebp + esi - 0x20]
shl eax, 4
add eax, 0x4bca08
push eax
mov eax, dword [ebp - 0x30]
push 0xf
push eax
push 8
push edx
mov edx, ebx
call fcn.00420ee0
mov eax, dword [ebp - 0x30]
add eax, 0x19
add esi, 4
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x30], eax
cmp eax, 0x1a8
jl 0x422071
xor edi, edi
cmp dword [edi*4 + 0x4bcf10], 0xffffffff
jne 0x42214c
mov al, 1
jmp 0x422178
lea esi, [edi + 0xa4]
mov dword [ebp - 0x2c], eax
mov byte [edi], 1
call fcn.0044e3a0
mov eax, dword [ebp - 0x2c]
mov esi, dword [ebp - 0x24]
xor edx, edx
mov dword [edi + 0xa0], edx
mov dword [edi + 0x9c], edx
mov dword [edi + 4], edx
jmp 0x4220bc
or dword [ebp - 0x28], 1
push 1
lea eax, [ebp - 0x110]
call fcn.0044fa00
mov esi, eax
call fcn.0044f9d0
mov ecx, dword [edi*4 + 0x4bcf10]
push ebx
mov esi, eax
call fcn.0041d640
cmp eax, esi
sete al
test byte [ebp - 0x28], 1
mov byte [edi + 0x4cde70], al
je 0x422188
and dword [ebp - 0x28], 0xfffffffe
inc edi
cmp edi, 0xb
jl 0x422111
lea esi, [ebx + 0xb0ec]
push str.CGMode
mov ecx, esi
call fcn.00406c10
push str.CGMODE.HMP
push esi
call fcn.00407860
push 0xb
push ebx
mov byte [ebx + 0xa42bd], 1
call fcn.0042f930
mov dword [ebx + 0x35800], 0x32
jmp case.0x423151.15
mov esi, dword [0x4e1d94]
mov edi, dword [0x4e1d98]
lea eax, [esi*4]
mov ecx, dword [eax + 0x4cc970]
mov dword [ebp - 0x24], eax
lea eax, [ebx + 0xb0ec]
push eax
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x4c], edi
mov dword [0x4e1d9c], ecx
call fcn.00407250
push ebx
mov ecx, esi
call fcn.00405c70
push edi
lea edx, [esi + 1]
push edx
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x38], esp
push eax
mov ecx, str.CGTM_02d_02d.KG
call fcn.0044e240
lea edi, [ebp - 0x8c]
call fcn.0044f580
add esp, 0x20
push 0
push 0xc
call fcn.0044e810
push eax
push ebx
call fcn.00417210
mov eax, dword [0x4e1fac]
cmp eax, 0xffffffff
je 0x422261
mov ecx, dword [0x4e2080]
push ecx
mov edx, 0x4e26f8
call fcn.00420e80
or edi, 0xffffffff
mov dword [0x4e1fac], edi
jmp 0x422264
or edi, 0xffffffff
mov eax, dword [0x4e2058]
cmp eax, edi
je 0x422284
mov edx, dword [0x4e212c]
push edx
mov edx, 0x4e26f8
call fcn.00420e80
mov dword [0x4e2058], edi
mov eax, dword [0x4e2054]
cmp eax, edi
je 0x4222a4
mov ecx, dword [0x4e2128]
push ecx
mov edx, 0x4e26f8
call fcn.00420e80
mov dword [0x4e2054], edi
mov eax, dword [0x4e2050]
cmp eax, edi
je 0x4222c4
mov edx, dword [0x4e2124]
push edx
mov edx, 0x4e26f8
call fcn.00420e80
mov dword [0x4e2050], edi
mov eax, dword [0x4e2044]
cmp eax, edi
je 0x4222e4
mov ecx, dword [0x4e2118]
push ecx
mov edx, 0x4e26f8
call fcn.00420e80
mov dword [0x4e2044], edi
mov eax, dword [0x4e2048]
cmp eax, edi
je 0x422304
mov edx, dword [0x4e211c]
push edx
mov edx, 0x4e26f8
call fcn.00420e80
mov dword [0x4e2048], edi
push 1
push 0x4e2118
push 0x4e2044
call fcn.00402430
add esp, 0xc
cmp eax, edi
je 0x422343
mov ecx, dword [0x4e1d98]
shl ecx, 4
add ecx, 0x4bcca0
push ecx
push 0x21d
push 0x1da
push 8
push 1
mov ecx, eax
mov edx, ebx
call fcn.00420ee0
push 1
push 0x4e211c
push 0x4e2048
call fcn.00402430
add esp, 0xc
cmp eax, edi
je 0x422382
mov edx, dword [0x4e1d9c]
shl edx, 4
add edx, 0x4bcc90
push edx
push 0x21d
push 0x227
push 8
push 1
mov ecx, eax
mov edx, ebx
call fcn.00420ee0
push 0
push 0x4e212c
push 0x4e2058
call fcn.00402430
mov edi, eax
add esp, 0xc
cmp edi, 0xffffffff
je 0x422437
mov ecx, dword [esi*8 + str.LAH]
mov edx, dword [esi*8 + 0x4bcdd8]
mov eax, esi
shl eax, 4
add eax, 0x4bcd28
push eax
mov eax, dword [ebp - 0x24]
push ecx
mov ecx, dword [eax + 0x4bc8ac]
push edx
push ecx
push 0
mov ecx, edi
mov edx, ebx
call fcn.00420ee0
imul edi, edi, 0xbc
lea eax, [edi + ebx + 0xf6c4]
test eax, eax
je 0x422437
cmp byte [0x4e1db0], 0
je 0x422417
mov dword [eax + 8], 0x20
mov ecx, dword [ebx + 0xb0cc]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0xb0cc]
add ecx, 0xa
mov dword [eax + 0x10], ecx
mov dword [eax + 0x3c], 0
mov dword [eax + 0x40], 0x7f
jmp 0x422422
add dword [eax + 0x14], 0x14
mov dword [eax + 0x3c], 0x7f
mov ecx, 0x6c
mov dword [eax + 0x44], 0xff
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x54], ecx
mov dword [eax + 0x5c], ecx
push 0
push 0x4e2128
push 0x4e2054
call fcn.00402430
mov edi, eax
add esp, 0xc
cmp edi, 0xffffffff
je 0x4224f1
mov eax, dword [esi*8 + str.LAH]
mov ecx, dword [esi*8 + 0x4bcdd8]
mov edx, esi
shl edx, 4
add edx, 0x4bcd28
push edx
mov edx, dword [ebp - 0x24]
push eax
mov eax, dword [edx + 0x4bc8ac]
push ecx
push eax
push 0
mov ecx, edi
mov edx, ebx
call fcn.00420ee0
imul edi, edi, 0xbc
lea eax, [edi + ebx + 0xf6c4]
xor edi, edi
cmp eax, edi
je 0x4224f3
cmp byte [0x4e1db0], 0
je 0x4224d2
mov dword [eax + 8], 0x60
mov ecx, dword [ebx + 0xb0cc]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0xb0cc]
add ecx, 0xa
mov dword [eax + 0x10], ecx
mov ecx, 0xff
mov dword [eax + 0x3c], edi
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], ecx
mov dword [eax + 0x48], edi
jmp 0x4224dd
mov ecx, 0xff
mov dword [eax + 0x3c], ecx
mov dword [eax + 0x44], edi
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x54], ecx
mov dword [eax + 0x5c], ecx
mov dword [eax + 0x50], ecx
mov dword [eax + 0x58], ecx
mov dword [eax + 0x60], ecx
jmp 0x4224f3
xor edi, edi
push edi
push 0x4e2080
push 0x4e1fac
call fcn.00402430
add esp, 0xc
cmp eax, 0xffffffff
je 0x422533
mov edx, dword [esi*8 + 0x4bcb6c]
mov ecx, esi
shl ecx, 4
add ecx, 0x4bcab8
push ecx
mov ecx, dword [esi*8 + 0x4bcb68]
push edx
push ecx
push 8
push edi
mov ecx, eax
mov edx, ebx
call fcn.00420ee0
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x48]
lea eax, [edx + ecx*4]
add eax, ecx
lea eax, [eax + eax*2]
shl eax, 5
mov esi, 0x4e1fb0
add eax, 0x4cc9d4
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x44], 0x4e1dc8
mov dword [ebp - 0x24], 0x4c6b60
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x4c], eax
lea esp, [esp]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax*8 + 0x4bc978]
mov edx, dword [eax*8 + 0x4bc97c]
mov eax, dword [esi]
or edi, 0xffffffff
mov dword [ebp - 0x48], ecx
mov dword [ebp - 0x54], edx
cmp eax, edi
je 0x4225a3
mov ecx, dword [esi + 0xd4]
push ecx
mov edx, 0x4e26f8
call fcn.00420e80
mov dword [esi], edi
mov eax, dword [esi + 0x30]
cmp eax, edi
je 0x4225be
mov edx, dword [esi + 0x104]
push edx
mov edx, 0x4e26f8
call fcn.00420e80
mov dword [esi + 0x30], edi
mov eax, dword [esi + 0x64]
cmp eax, edi
je 0x4225d9
mov ecx, dword [esi + 0x138]
push ecx
mov edx, 0x4e26f8
call fcn.00420e80
mov dword [esi + 0x64], edi
mov eax, dword [ebp - 0x4c]
mov ecx, dword [eax - 4]
mov eax, dword [eax]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x30], eax
test ecx, ecx
js 0x4227f6
test eax, eax
jle 0x4227f6
push 0
lea edx, [esi + 0xd4]
push edx
push esi
call fcn.00402430
add esp, 0xc
cmp eax, edi
je 0x422627
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x48]
push 0x4bc9d8
push ecx
push edx
push 8
push 0
mov ecx, eax
mov edx, ebx
call fcn.00420ee0
mov ecx, dword [ebp - 0x30]
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x34], esp
push ecx
call fcn.0044fa00
mov edi, dword [ebp - 0x44]
add edi, 0x120
call fcn.0044fa20
cmp dword [ebp - 0x30], 0
mov dword [ebp - 0x34], 0
jle 0x4226ad
mov eax, dword [ebp - 0x28]
lea edx, [eax + eax*2 + 0xda10]
mov eax, dword [ebp - 0x30]
lea edi, [ebx + edx*4]
mov dword [ebp - 0x28], eax
jmp 0x422670
push 1
lea eax, [ebp - 0xb0]
call fcn.0044fa00
mov esi, eax
call fcn.0044f9d0
sub esp, 0xc
mov ecx, eax
mov eax, esp
mov dword [ebp - 0x50], esp
push ecx
call fcn.0044fa00
mov eax, edi
call fcn.0044fa50
test al, al
je 0x4226a2
inc dword [ebp - 0x34]
add edi, 0xc
dec dword [ebp - 0x28]
jne 0x422670
mov esi, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x34]
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x50], esp
push ecx
call fcn.0044fa00
mov edi, dword [ebp - 0x44]
add edi, 0x90
call fcn.0044fa20
sub esp, 0xc
cmp dword [ebp - 0x34], 0
mov eax, esp
mov dword [ebp - 0x50], esp
jle 0x4227ea
push 1
call fcn.0044fa00
mov edi, dword [ebp - 0x44]
call fcn.0044fa20
push 0
lea edx, [esi + 0x104]
push edx
lea eax, [esi + 0x30]
push eax
call fcn.00402430
mov ecx, eax
add esp, 0xc
cmp ecx, 0xffffffff
je 0x422755
mov edi, dword [ebp - 0x2c]
mov eax, 0xaaaaaaab
mul edi
shr edx, 1
lea eax, [edx + edx*2]
imul edx, edx, 0x59
mov dword [ebp - 0x38], eax
mov eax, edi
sub eax, dword [ebp - 0x38]
mov dword [ebp - 0x70], edx
imul eax, eax, 0x77
add edx, 0x59
mov dword [ebp - 0x74], eax
add eax, 0x77
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp - 0x54]
lea edx, [ebp - 0x74]
push edx
mov edx, dword [ebp - 0x48]
add eax, 7
push eax
add edx, 7
push edx
push 0xc
push 0
mov edx, ebx
call fcn.00420ee0
push 0
lea eax, [esi + 0x138]
push eax
lea eax, [esi + 0x64]
push eax
call fcn.00402430
add esp, 0xc
mov dword [ebp - 0x28], eax
cmp eax, 0xffffffff
je 0x4227d4
mov edx, dword [ebp - 0x34]
xor ecx, ecx
cmp edx, dword [ebp - 0x30]
sete cl
mov edi, ecx
mov edx, edi
shl edx, 4
add edx, 0x4bc9e8
mov eax, dword [edx + 4]
mov ecx, dword [edx]
mov dword [ebp - 0x60], eax
mov eax, dword [edx + 8]
mov edx, dword [edx + 0xc]
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], edx
test edi, edi
jne 0x4227b4
sub eax, ecx
imul eax, dword [ebp - 0x34]
cdq
idiv dword [ebp - 0x30]
add eax, ecx
mov dword [ebp - 0x5c], eax
mov ecx, dword [ebp - 0x54]
mov edx, dword [ebp - 0x48]
lea eax, [ebp - 0x64]
push eax
add ecx, 0x63
push ecx
mov ecx, dword [ebp - 0x28]
add edx, 9
push edx
push 8
push 0
mov edx, ebx
call fcn.00420ee0
cmp dword [ebp - 0x2c], 0xb
ja 0x422844
mov edx, dword [ebp - 0x24]
lea ecx, [ebx + 0xb0ec]
call fcn.004072d0
jmp 0x422844
push 0
call fcn.0044fa00
mov edi, dword [ebp - 0x44]
jmp 0x42283f
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x50], esp
push 0
call fcn.0044fa00
mov edi, dword [ebp - 0x44]
call fcn.0044fa20
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x50], esp
push 0
call fcn.0044fa00
add edi, 0x90
call fcn.0044fa20
sub esp, 0xc
mov eax, esp
mov dword [ebp - 0x50], esp
push 0
call fcn.0044fa00
mov edi, dword [ebp - 0x44]
add edi, 0x120
call fcn.0044fa20
mov eax, dword [ebp - 0x2c]
add dword [ebp - 0x4c], 8
add dword [ebp - 0x24], 0x84
add dword [ebp - 0x44], 0xc
inc eax
add esi, 4
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x38], esi
cmp eax, 0xc
jl 0x422570
mov byte [ebx + 0xa42bd], 0
movzx eax, byte [0x4e1db0]
neg eax
sbb eax, eax
and eax, 0xffffffd8
add eax, 0x64
mov dword [0x4e1f90], 0
mov dword [ebx + 0x35800], eax
jmp case.0x423151.15
mov ecx, dword [0x4e212c]
mov eax, dword [0x4e2058]
push ecx
mov ecx, ebx
call fcn.00421020
cmp eax, edi
je 0x4228ca
mov ecx, dword [ebx + 0xb0cc]
cmp dword [eax + 0x10], ecx
jbe 0x4228c1
cmp dword [eax + 8], edi
jne case.0x423151.15
mov edx, dword [eax + 0x40]
mov dword [eax + 8], edi
mov dword [eax + 0x3c], edx
mov eax, dword [0x4e2128]
push eax
mov eax, dword [0x4e2054]
mov ecx, ebx
call fcn.00421020
cmp eax, edi
je 0x4228f2
test byte [eax + 8], 0x20
je 0x4228f2
mov ecx, dword [eax + 0x40]
mov dword [eax + 8], edi
mov dword [eax + 0x3c], ecx
mov dword [eax + 0x44], edi
mov edx, dword [0x4e212c]
mov eax, dword [0x4e2058]
push edx
mov ecx, ebx
call fcn.00421020
cmp eax, edi
je 0x42292e
mov dword [eax + 8], 1
mov ecx, dword [ebx + 0xb0cc]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0xb0cc]
add ecx, 0xa
mov dword [eax + 0x10], ecx
mov ecx, dword [eax + 0x14]
add ecx, 0x14
mov dword [eax + 0x18], ecx
mov dword [ebx + 0x35800], 0x41
jmp case.0x423151.15
mov edx, dword [0x4e212c]
mov eax, dword [0x4e2058]
push edx
mov ecx, ebx
call fcn.00421020
cmp eax, edi
je 0x4235ea
mov ecx, dword [ebx + 0xb0cc]
cmp dword [eax + 0x10], ecx
jbe 0x42296c
cmp dword [eax + 8], edi
jne case.0x423151.15
mov ecx, dword [eax + 0x18]
mov dword [eax + 8], edi
mov dword [eax + 0x14], ecx
jmp 0x4235ea
cmp byte [0x4e1db0], 0
je 0x4221ba
mov edx, dword [0x4e212c]
mov eax, dword [0x4e2058]
push edx
mov ecx, ebx
call fcn.00421020
cmp eax, edi
je 0x4229c3
mov dword [eax + 8], 1
mov ecx, dword [ebx + 0xb0cc]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0xb0cc]
add ecx, 0xa
mov dword [eax + 0x10], ecx
mov ecx, dword [eax + 0x14]
sub ecx, 0x14
mov dword [eax + 0x18], ecx
mov dword [ebx + 0x35800], 0x55
jmp case.0x423151.15
mov edx, dword [0x4e212c]
mov eax, dword [0x4e2058]
push edx
mov ecx, ebx
call fcn.00421020
cmp eax, edi
je 0x422a06
cmp dword [eax + 8], edi
je 0x4229fd
mov ecx, dword [ebx + 0xb0cc]
cmp dword [eax + 0x10], ecx
ja case.0x423151.15
mov ecx, dword [eax + 0x18]
mov dword [eax + 8], edi
mov dword [eax + 0x14], ecx
mov edx, dword [0x4e212c]
mov eax, dword [0x4e2058]
push edx
mov ecx, ebx
call fcn.00421020
cmp eax, edi
je 0x422a43
mov dword [eax + 8], 0x20
mov ecx, dword [ebx + 0xb0cc]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0xb0cc]
add ecx, 0xa
mov dword [eax + 0x10], ecx
mov dword [eax + 0x3c], 0x7f
mov dword [eax + 0x40], edi
mov eax, dword [0x4e2128]
push eax
mov eax, dword [0x4e2054]
mov ecx, ebx
call fcn.00421020
cmp eax, edi
je 0x422a98
mov dword [eax + 8], 0x60
mov ecx, dword [ebx + 0xb0cc]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebx + 0xb0cc]
add ecx, 0xa
mov dword [eax + 0x10], ecx
mov ecx, 0xff
mov dword [eax + 0x3c], ecx
mov dword [eax + 0x40], edi
mov dword [eax + 0x44], edi
mov dword [eax + 0x48], ecx
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x54], ecx
mov dword [eax + 0x5c], ecx
mov dword [eax + 0x50], ecx
mov dword [eax + 0x58], ecx
mov dword [eax + 0x60], ecx
mov dword [ebx + 0x35800], 0x57
jmp case.0x423151.15
mov eax, dword [0x4e2058]
cmp eax, 0xffffffff
je 0x422aec
lea ecx, [ebx + 0xf6c4]
cmp dword [0x4e212c], edi
je 0x422ac5
lea ecx, [ebx + 0x21d40]
imul eax, eax, 0xbc
add eax, ecx
je 0x422aec
cmp dword [eax + 8], edi
je 0x422ae3
mov ecx, dword [ebx + 0xb0cc]
cmp dword [eax + 0x10], ecx
ja case.0x423151.15
mov ecx, dword [eax + 0x40]
mov dword [eax + 8], edi
mov dword [eax + 0x3c], ecx
mov eax, dword [0x4e2054]
cmp eax, 0xffffffff
je 0x422b1d
lea ecx, [ebx + 0xf6c4]
cmp dword [0x4e2128], edi
je 0x422b0a
lea ecx, [ebx + 0x21d40]
imul eax, eax, 0xbc
add eax, ecx
je 0x422b1d
mov edx, dword [eax + 0x40]
mov dword [eax + 8], edi
mov dword [eax + 0x3c], edx
mov dword [ebx + 0x35800], 0x32
jmp case.0x423151.15
cmp eax, 0x1c2
jg 0x4233de
je 0x422c27
sub eax, 0x64
je 0x422fa9
sub eax, 0xc8
je 0x4235ea
sub eax, 0x64
jne case.0x423151.15
mov byte [ebx + 0xa419c], 1
mov al, byte [ebx + 0xa427c]
test al, al
jne 0x422b61
mov eax, dword [0x4e2060]
or esi, 0xffffffff
cmp eax, esi
je 0x422b8e
mov ecx, dword [0x4e2134]
push ecx
mov edx, 0x4e26f8
call fcn.00420e80
mov dword [0x4e2060], esi
mov eax, dword [0x4e2064]
cmp eax, esi
je 0x422bae
mov edx, dword [0x4e2138]
push edx
mov edx, 0x4e26f8
call fcn.00420e80
mov dword [0x4e2064], esi
mov eax, dword [0x4e1da4]
cmp eax, dword [0x4e1dac]
jge 0x422c1d
jmp 0x422bc0
push 1
lea eax, [ebp - 0xec]
call fcn.0044fa00
mov esi, eax
call fcn.0044f9d0
sub esp, 0xc
mov ecx, eax
mov eax, esp
mov dword [ebp - 0x50], esp
push ecx
call fcn.0044fa00
mov ecx, dword [0x4e1da4]
mov edx, dword [0x4e1da8]
lea eax, [edx + ecx + 0x48b0]
lea eax, [eax + eax*2]
lea eax, [ebx + eax*4]
call fcn.0044fb10
test al, al
je 0x422ccf
mov eax, dword [0x4e1da4]
inc eax
mov dword [0x4e1da4], eax
cmp eax, dword [0x4e1dac]
jl 0x422bc0
mov dword [ebx + 0x35800], 0x1ea
mov esi, dword [ebx + 0xad80]
mov edx, dword [ebx + 0xad84]
mov eax, esi
xor eax, edx
mov ecx, eax
and ecx, edx
test cl, 1
jne 0x4233d3
test ecx, 0x1000000
jne 0x4233d3
test cl, 2
jne 0x4233c4
and eax, esi
test eax, 0x2000
jne 0x4233c4
cmp byte [0x4e1db1], 0
je case.0x423151.15
lea edi, [ebx + 0x2f4]
lea esi, [ebp - 0x9c]
mov dword [ebx + 0x9814], 2
call fcn.00443e60
mov ecx, dword [eax]
mov esi, dword [eax + 4]
cmp ecx, 0x64
jge 0x4232b1
xor eax, eax
cmp ecx, 0x10
mov ecx, dword [0x4e1dbc]
setg al
dec eax
and eax, 3
inc eax
neg eax
lea edx, [ecx + eax*2]
mov dword [0x4e1dbc], edx
test edx, edx
jns 0x4232fa
xor edx, edx
mov dword [0x4e1dbc], edx
jmp 0x4232fa
mov eax, dword [0x4e1da8]
add eax, dword [0x4e1da4]
mov byte [ebp - 0x3d], 1
lea ecx, [eax + 0x30c0]
shl ecx, 5
cmp dword [ecx + ebx], 1
jne 0x422cfb
push 3
push eax
push ebx
call fcn.004168a0
jmp 0x422dc5
push 0xe
push eax
push ebx
mov byte [ebp - 0x3d], 0
call fcn.00416db0
push 3
push 0x80000000
push ebx
call fcn.004168a0
mov eax, dword [0x4e2064]
or ecx, 0xffffffff
cmp eax, ecx
je 0x422d45
test eax, eax
js 0x422d3f
cmp eax, 0x190
jge 0x422d3f
imul eax, eax, 0xbc
mov byte [eax + 0x504438], 0
mov dword [eax + 0x50443c], ecx
mov dword [0x4e2064], ecx
mov edi, 0x504438
xor eax, eax
lea esp, [esp]
cmp byte [edi], 0
je 0x422e83
inc eax
add edi, 0xbc
cmp eax, 0x190
jl 0x422d50
or esi, 0xffffffff
mov dword [0x4e2064], esi
cmp esi, 0xffffffff
je 0x422dc5
push 0
push 0
push 0
push 3
push 1
mov ecx, esi
mov edx, ebx
mov dword [0x4e2138], 1
call fcn.00420ee0
imul esi, esi, 0xbc
lea esi, [esi + ebx + 0x21d40]
test esi, esi
je 0x422dc5
push 0x258
push 0x320
push 0
mov dword [esi + 0x9c], 2
push 0
add esi, 0x7c
push esi
call dword [0x4892c4]
mov eax, dword [0x4e2060]
or ecx, 0xffffffff
cmp eax, ecx
je 0x422df5
test eax, eax
js 0x422def
cmp eax, 0x190
jge 0x422def
imul eax, eax, 0xbc
mov byte [eax + 0x504438], 0
mov dword [eax + 0x50443c], ecx
mov dword [0x4e2060], ecx
xor esi, esi
mov edi, 0x504438
xor eax, eax
mov edi, edi
cmp byte [edi], 0
je 0x422eb1
inc eax
add edi, 0xbc
cmp eax, 0x190
jl 0x422e00
or edi, 0xffffffff
mov dword [0x4e2060], edi
cmp edi, 0xffffffff
je 0x422f93
cmp byte [ebp - 0x3d], 0
mov dword [0x4e2134], 1
je 0x422f35
push esi
push esi
push esi
push 3
push 1
mov ecx, edi
mov edx, ebx
call fcn.00420ee0
mov eax, dword [ebx + 0xa90]
mov dword [0x4e1db4], eax
mov ecx, dword [ebx + 0xa94]
mov dword [0x4e1db8], ecx
cmp eax, dword [ebx + 0xa3e84]
jg 0x422ee1
cmp ecx, dword [ebx + 0xa3e88]
jg 0x422ee1
mov dword [ebx + 0x9814], esi
mov byte [0x4e1db1], 0
jmp 0x422efe
lea esi, [edi + 0xa4]
mov dword [ebp - 0x24], eax
mov byte [edi], 1
call fcn.0044e3a0
mov esi, dword [ebp - 0x24]
xor eax, eax
mov dword [edi + 0xa0], eax
mov dword [edi + 0x9c], eax
mov dword [edi + 4], 1
jmp 0x422d6a
lea esi, [edi + 0xa4]
mov dword [ebp - 0x24], eax
mov byte [edi], 1
call fcn.0044e3a0
xor eax, eax
mov dword [edi + 0xa0], eax
mov dword [edi + 0x9c], eax
mov dword [edi + 4], 1
mov edi, dword [ebp - 0x24]
xor esi, esi
jmp 0x422e1a
mov dword [ebx + 0x9814], 2
mov byte [0x4e1db1], 1
mov dword [0x4e1dbc], esi
mov dword [0x4e1dc0], esi
imul edi, edi, 0xbc
lea edi, [edi + ebx + 0x21d40]
cmp edi, esi
je 0x422f93
push 0x258
push 0x320
push esi
mov dword [edi + 0x9c], 2
push esi
add edi, 0x7c
push edi
call dword [0x4892c4]
jmp 0x422f93
mov cl, byte [ebx + 0x37ec]
test cl, cl
je 0x422f47
mov edx, dword [ebx + 0x37f0]
jmp 0x422f4d
mov edx, dword [ebx + 0x37b4]
mov eax, dword [ebx + 0xa3e84]
sub eax, edx
cdq
sub eax, edx
mov esi, eax
sar esi, 1
test cl, cl
je 0x422f68
mov ecx, dword [ebx + 0x37f4]
jmp 0x422f6e
mov ecx, dword [ebx + 0x37b8]
mov eax, dword [ebx + 0xa3e88]
sub eax, ecx
cdq
sub eax, edx
push 0
sar eax, 1
push eax
push esi
push 0xe
push 1
mov ecx, edi
mov edx, ebx
call fcn.00420ee0
mov byte [0x4e1db1], 0
mov byte [ebx + 0xa42bd], 0
mov dword [ebx + 0x35800], 0x1c2
jmp 0x422c27
mov esi, ebx
call fcn.00403a30
mov dword [ebp - 0x28], eax
mov eax, dword [ebx + 0xb104]
lea edx, [eax - 0x13]
cmp edx, 0xb
ja 0x422fd0
mov ecx, dword [0x4e1d98]
lea ecx, [ecx + ecx*2]
lea eax, [eax + ecx*4 - 0x12]
jmp 0x422fd2
xor eax, eax
cmp eax, dword [0x4e1f90]
je 0x422fdf
mov dword [0x4e1f90], eax
mov esi, dword [ebx + 0xad80]
mov edi, dword [ebx + 0xad84]
mov eax, esi
xor eax, edi
mov edx, eax
and edx, edi
test dl, 2
jne 0x423004
mov ecx, eax
and ecx, esi
test ecx, 0x2000
je 0x42300b
mov dword [ebp - 0x28], 0x10
and eax, esi
test eax, 0x100000
je 0x42301b
mov dword [ebp - 0x28], 0xd
mov esi, dword [0x489370]
test eax, 0x10000
mov eax, dword [0x4e1d90]
je 0x423095
test eax, eax
jle 0x423158
dec eax
mov dword [0x4e1d90], eax
test eax, eax
js 0x423095
cmp eax, 0x1c
jge 0x423095
mov edx, dword [eax*8 + 0x4bce34]
mov eax, dword [eax*8 + 0x4bce30]
push edx
push eax
lea ecx, [ebp - 0xa4]
push ecx
lea ecx, [ebx + 0x2f4]
call fcn.00443ea0
mov edx, dword [eax]
mov dword [ebp - 0x3c], edx
mov eax, dword [eax + 4]
mov edx, dword [ebx + 0x21c]
mov edx, dword [edx + 0x60]
lea ecx, [ebx + 0x21c]
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x3c]
push eax
call edx
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
push eax
push ecx
call esi
mov eax, dword [0x4e1d90]
mov ecx, dword [ebx + 0xad80]
mov edx, dword [ebx + 0xad84]
xor edx, ecx
and edx, ecx
test edx, 0x20000
je 0x423111
cmp eax, 0x1b
jge 0x423167
inc eax
mov dword [0x4e1d90], eax
test eax, eax
js 0x423111
cmp eax, 0x1c
jge 0x423111
mov ecx, dword [eax*8 + 0x4bce34]
mov edx, dword [eax*8 + 0x4bce30]
push ecx
push edx
lea eax, [ebp - 0x94]
push eax
lea ecx, [ebx + 0x2f4]
call fcn.00443ea0
mov ecx, dword [eax]
mov dword [ebp - 0x3c], ecx
mov edx, dword [eax + 4]
mov eax, dword [ebx + 0x21c]
mov eax, dword [eax + 0x60]
lea ecx, [ebx + 0x21c]
mov dword [ebp - 0x38], edx
lea edx, [ebp - 0x3c]
push edx
call eax
mov ecx, dword [ebp - 0x38]
mov edx, dword [ebp - 0x3c]
push ecx
push edx
call esi
mov ecx, dword [ebx + 0xad80]
mov eax, dword [ebx + 0xad84]
xor eax, ecx
and eax, ecx
test eax, 0x40000
je 0x42312f
mov dword [ebp - 0x28], 0x11
test eax, 0x80000
je 0x42313d
mov dword [ebp - 0x28], 0x12
mov eax, dword [ebp - 0x28]
dec eax
cmp eax, 0x1d
ja case.0x423151.15
movzx ecx, byte [eax + 0x4236b8]
jmp dword [ecx*4 + 0x423698]
mov eax, 0x1b
mov dword [0x4e1d90], eax
jmp 0x423044
xor eax, eax
mov dword [0x4e1d90], eax
jmp 0x4230c5
mov dword [0x4e1dc4], 0
mov dword [ebx + 0x35800], 0x384
jmp case.0x423151.15
mov dword [0x4e1dc4], 0x15
mov dword [ebx + 0x35800], 0x384
jmp case.0x423151.15
mov dword [0x4e1dc4], 0x12
mov dword [ebx + 0x35800], 0x384
jmp case.0x423151.15
cmp dword [0x4e1d94], eax
je case.0x423151.15
mov dword [0x4e1d94], eax
mov dword [0x4e1d98], 0
mov byte [0x4e1db0], 1
mov dword [ebx + 0x35800], 0x50
jmp case.0x423151.15
call fcn.00421a90
jmp case.0x423151.15
call fcn.00421b10
jmp case.0x423151.15
push 1
lea eax, [ebp - 0xc8]
call fcn.0044fa00
mov esi, eax
call fcn.0044f9d0
sub esp, 0xc
mov ecx, eax
mov eax, esp
mov dword [ebp - 0x50], esp
push ecx
call fcn.0044fa00
mov esi, dword [ebp - 0x28]
add esi, 0xffffffed
lea eax, [esi + esi*2]
lea eax, [eax*4 + 0x4e1dc8]
call fcn.0044fb10
test al, al
jne case.0x423151.15
mov ecx, dword [0x4e1d94]
mov edx, dword [0x4e1d98]
lea eax, [edx + ecx*4]
add eax, ecx
lea eax, [eax + eax*2]
lea eax, [esi + eax*4]
add eax, eax
add eax, eax
mov ecx, dword [eax + eax + 0x4cc9d0]
mov edx, dword [eax + eax + 0x4cc9d4]
add eax, eax
mov dword [0x4e1da8], ecx
push str.DUMMY
lea ecx, [ebx + 0xb0ec]
mov dword [0x4e1da0], esi
mov dword [0x4e1da4], 0
mov dword [0x4e1dac], edx
call fcn.00406c10
mov byte [ebx + 0xa42bd], 1
mov dword [ebx + 0x35800], 0x190
jmp case.0x423151.15
mov eax, dword [ebx + 0xa3e84]
lea edx, [eax - 0x64]
cmp ecx, edx
jle 0x4232f4
add eax, 0xfffffff0
xor edx, edx
cmp ecx, eax
mov eax, dword [0x4e1dbc]
setl dl
dec edx
and edx, 3
lea edx, [eax + edx*2 + 2]
mov eax, dword [0x4e1db4]
mov dword [0x4e1dbc], edx
sub eax, dword [ebx + 0xa3e84]
cmp edx, eax
jle 0x4232fa
mov edx, eax
mov dword [0x4e1dbc], edx
jmp 0x4232fa
mov edx, dword [0x4e1dbc]
cmp esi, 0x64
jge 0x423328
mov eax, dword [0x4e1dc0]
xor ecx, ecx
cmp esi, 0x10
setg cl
dec ecx
and ecx, 3
inc ecx
neg ecx
lea eax, [eax + ecx*2]
mov dword [0x4e1dc0], eax
test eax, eax
jns 0x42336f
xor eax, eax
mov dword [0x4e1dc0], eax
jmp 0x42336f
mov eax, dword [ebx + 0xa3e88]
lea ecx, [eax - 0x64]
cmp esi, ecx
jle 0x42336a
xor ecx, ecx
add eax, 0xfffffff0
cmp esi, eax
mov eax, dword [0x4e1dc0]
setl cl
dec ecx
and ecx, 3
lea eax, [eax + ecx*2 + 2]
mov ecx, dword [0x4e1db8]
mov dword [0x4e1dc0], eax
sub ecx, dword [ebx + 0xa3e88]
cmp eax, ecx
jle 0x42336f
mov eax, ecx
mov dword [0x4e1dc0], eax
jmp 0x42336f
mov eax, dword [0x4e1dc0]
mov ecx, dword [0x4e2060]
cmp ecx, 0xffffffff
je case.0x423151.15
cmp dword [0x4e2134], 0
lea esi, [ebx + 0xf6c4]
je 0x423393
lea esi, [ebx + 0x21d40]
imul ecx, ecx, 0xbc
add ecx, esi
je case.0x423151.15
mov esi, dword [ebx + 0xa3e88]
add esi, eax
push esi
mov esi, dword [ebx + 0xa3e84]
add esi, edx
push esi
push eax
push edx
add ecx, 0x7c
push ecx
call dword [0x4892c4]
jmp case.0x423151.15
mov dword [ebx + 0x35800], 0x1ea
jmp case.0x423151.15
inc dword [0x4e1da4]
jmp 0x42329b
cmp eax, 0x1ea
je 0x423500
cmp eax, 0x384
jne case.0x423151.15
mov cl, byte [ebx + 0xa427c]
test cl, cl
jne 0x4233f4
lea edx, [ebx + 0xb0ec]
push edx
mov byte [ebx + 0xa42bd], 1
call fcn.00406f70
mov edx, 0x4e1f94
mov eax, dword [edx]
or esi, 0xffffffff
cmp eax, esi
je 0x423463
mov ecx, dword [edx + 0xd4]
sub ecx, edi
je 0x423447
dec ecx
jne 0x423461
cmp eax, 0x18f
ja 0x423461
imul eax, eax, 0xbc
mov byte [eax + 0x504438], cl
mov dword [eax + 0x50443c], esi
jmp 0x423461
cmp eax, 0x18f
ja 0x423461
imul eax, eax, 0xbc
mov byte [eax + 0x4f1dbc], 0
mov dword [eax + 0x4f1dc0], esi
mov dword [edx], esi
add edx, 4
cmp edx, 0x4e2068
jl 0x423416
lea eax, [ebx + 0x2834]
push eax
call fcn.0043e6b0
lea ecx, [ebx + 0x3274]
push ecx
call fcn.0043e6b0
lea edx, [ebx + 0x3504]
push edx
call fcn.0043e6b0
lea eax, [ebx + 0x3a24]
push eax
call fcn.0043e6b0
lea ecx, [ebx + 0x41d4]
push ecx
call fcn.0043e6b0
lea eax, [ebx + 0xa64]
call fcn.00444510
mov dword [ebx + 0x35800], edi
mov eax, dword [0x4e1dc4]
cmp eax, edi
jne 0x4234f1
mov ecx, ebx
call fcn.00419350
mov dword [ebx + 0x357ac], eax
mov eax, dword [ebx + 0x357a0]
cmp dword [ebx + 0x3579c], eax
je case.0x423151.15
add eax, 0xfffffffc
mov dword [ebx + 0x357a0], eax
jmp case.0x423151.15
mov dword [ebx + 0x357ac], eax
jmp case.0x423151.15
mov dl, byte [ebx + 0xa427c]
test dl, dl
jne 0x423500
mov byte [ebx + 0xa42bd], dl
mov dword [ebx + 0x9814], edi
mov eax, dword [0x4e2060]
or edx, 0xffffffff
cmp eax, edx
je 0x423572
mov ecx, dword [0x4e2134]
sub ecx, edi
je 0x42354e
dec ecx
jne 0x42356c
cmp eax, edi
jl 0x42356c
cmp eax, 0x190
jge 0x42356c
imul eax, eax, 0xbc
mov byte [eax + 0x504438], cl
mov dword [eax + 0x50443c], edx
jmp 0x42356c
cmp eax, edi
jl 0x42356c
cmp eax, 0x190
jge 0x42356c
imul eax, eax, 0xbc
mov byte [eax + 0x4f1dbc], 0
mov dword [eax + 0x4f1dc0], edx
mov dword [0x4e2060], edx
mov eax, dword [0x4e2064]
cmp eax, edx
je 0x4235cb
mov ecx, dword [0x4e2138]
sub ecx, edi
je 0x4235a7
dec ecx
jne 0x4235c5
cmp eax, edi
jl 0x4235c5
cmp eax, 0x190
jge 0x4235c5
imul eax, eax, 0xbc
mov byte [eax + 0x504438], cl
mov dword [eax + 0x50443c], edx
jmp 0x4235c5
cmp eax, edi
jl 0x4235c5
cmp eax, 0x190
jge 0x4235c5
imul eax, eax, 0xbc
mov byte [eax + 0x4f1dbc], 0
mov dword [eax + 0x4f1dc0], edx
mov dword [0x4e2064], edx
lea eax, [ebx + 0x3794]
push eax
call fcn.0043e6b0
lea eax, [ebx + 0xb0ec]
push eax
call fcn.00406f70
mov byte [ebx + 0xa419c], 0
mov dword [ebx + 0x35800], 0x64
lea ecx, [ebp - 0x8c]
mov dword [ebp - 4], 0xffffffff
call fcn.0044e300
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004543d6
mov esp, ebp
pop ebp
ret 4