Function at 0x401260
Capabilities:
Authenticate hmac
Parse pe header

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1b4
mov eax, dword [0x41f0fc]
xor eax, ebp
mov dword [ebp - 0x70], eax
push esi
push edi
mov byte [ebp - 0x119], 7
mov byte [ebp - 0x11], 4
mov byte [ebp - 0xfd], 0x10
mov byte [ebp - 9], 0
mov byte [ebp - 0x1d], 4
mov eax, dword [0x41fda4]
sub eax, dword [0x423dc0]
add eax, 0x38
and eax, dword [0x41fdbc]
mov byte [ebp - 0x65], al
movzx ecx, word [ebp - 0xf0]
imul ecx, dword [0x41f00c]
mov dword [0x41f00c], ecx
movzx edx, word [ebp - 0x15c]
mov eax, dword [0x41f00c]
lea ecx, [eax + edx + 0xf]
and ecx, dword [0x41fdb4]
and ecx, dword [ebp - 0x140]
mov byte [ebp - 0x25], cl
movzx edx, word [ebp - 0x124]
add edx, 0x41
movzx eax, byte [ebp - 0x25]
or edx, eax
movzx ecx, word [ebp - 0x8c]
add ecx, edx
mov word [ebp - 0x8c], cx
lea edx, [ebp - 0x138]
mov dword [ebp - 0xec], edx
movzx eax, word [ebp - 0x88]
mov ecx, dword [ebp - 0x138]
sub ecx, eax
add ecx, dword [ebp - 0x138]
and ecx, 0x1e
xor ecx, 0x54
mov byte [ebp - 9], cl
mov edx, dword [ebp - 0xec]
mov eax, dword [ebp - 0x134]
mov dword [edx], eax
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x138]
add ecx, dword [ebp - 0xe0]
and ecx, 0x5e
mov word [ebp - 0x154], cx
mov edx, 0x4b
sub edx, dword [ebp - 0x40]
add edx, dword [ebp - 0x6c]
add edx, dword [ebp - 0x138]
mov byte [ebp - 0xf1], dl
mov ecx, 0xd
mov esi, str.DriverWorks__c__Copyright_2003_Compuware_Corporation
lea edi, [ebp - 0xd4]
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x144]
sub eax, 0x54
and eax, dword [0x41fdb8]
add eax, dword [ebp - 0x158]
mov dword [ebp - 0x158], eax
mov ecx, dword [ebp - 0x40]
add ecx, 0x70
sub ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x120]
mov byte [ebp - 0xd9], cl
mov edx, dword [ebp - 0xe0]
sub edx, 0x47
movzx eax, word [ebp - 0x8c]
sub edx, eax
xor edx, dword [ebp - 0x144]
mov byte [ebp - 0xa], dl
mov ecx, dword [ebp - 0x164]
xor ecx, 0xf
mov edx, dword [ebp - 0xe0]
sub edx, dword [ebp - 0x40]
xor edx, dword [ebp - 0x144]
or ecx, edx
mov byte [ebp - 0x11], cl
mov eax, dword [ebp - 0x30]
add eax, 0x37
mov dword [ebp - 0x134], eax
movzx ecx, word [ebp - 0x15c]
add ecx, dword [ebp - 0x9c]
mov dword [ebp - 0x120], ecx
push 0x1770
call fcn.00403bb2
add esp, 4
mov dword [0x41fda8], eax
movzx edx, byte [ebp - 0x125]
xor edx, dword [ebp - 0x134]
xor edx, 0x24
xor edx, dword [ebp - 0x120]
mov word [ebp - 0x114], dx
mov eax, dword [0x41f00c]
mov ecx, dword [ebp - 0xe0]
lea edx, [ecx + eax + 0x35]
and edx, dword [ebp - 0x3c]
mov dword [ebp - 0x3c], edx
mov eax, dword [ebp - 0x120]
or eax, 0x39
mov dword [ebp - 0x138], eax
mov ecx, dword [ebp - 0xe0]
add ecx, dword [ebp - 0x144]
and ecx, 0x34
mov dword [ebp - 0x140], ecx
movzx edx, word [ebp - 0x160]
movzx eax, byte [ebp - 0x10d]
sub eax, edx
mov byte [ebp - 0x10d], al
movzx ecx, byte [ebp - 0xd9]
mov edx, 4
sub edx, ecx
mov dword [ebp - 0x6c], edx
mov eax, dword [0x41f018]
add eax, dword [ebp - 0xe0]
add eax, dword [ebp - 0x9c]
movzx ecx, byte [ebp - 9]
add eax, ecx
xor eax, dword [ebp - 0x120]
movzx edx, byte [ebp - 0x25]
xor edx, eax
mov byte [ebp - 0x25], dl
mov dword [ebp - 0x48], 0
lea eax, [ebp - 0x144]
mov dword [ebp - 0x10c], eax
movzx ecx, byte [ebp - 0x35]
sub ecx, dword [ebp - 0x120]
or ecx, 0x5b
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x10c]
mov eax, dword [ebp - 0x134]
mov dword [edx], eax
mov ecx, dword [ebp - 0x9c]
add ecx, 0x58
and ecx, dword [ebp - 0x40]
movzx edx, word [ebp - 0xf8]
xor ecx, edx
mov word [ebp - 0x124], cx
movzx eax, word [ebp - 0x64]
add eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x144]
lea edx, [eax + ecx - 0x44]
mov word [ebp - 0x8c], dx
movzx eax, word [ebp - 0x64]
movzx ecx, word [ebp - 0xf8]
and eax, ecx
movzx edx, word [ebp - 0x154]
sub edx, eax
mov word [ebp - 0x154], dx
mov eax, dword [ebp - 0x120]
add eax, dword [ebp - 0x9c]
or eax, 0x38
mov dword [ebp - 0x2c], eax
movzx ecx, byte [ebp - 9]
mov edx, 0x31
sub edx, ecx
mov eax, dword [ebp - 0x40]
sub eax, dword [ebp - 0x9c]
add eax, dword [ebp - 0x118]
and edx, eax
mov byte [ebp - 0xf1], dl
mov ecx, dword [0x41f008]
sub ecx, dword [ebp - 0x30]
add ecx, 8
mov dword [ebp - 0x4c], ecx
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x144]
lea ecx, [eax + edx - 0x11]
or ecx, dword [ebp - 0x40]
mov byte [ebp - 0x11], cl
mov edx, dword [ebp - 0xe0]
sub edx, dword [ebp - 0x144]
mov dword [ebp - 0x6c], edx
mov dword [ebp - 8], str.XrcckX
push 0
push 0
call dword [sym.imp.USER32.dll_GetWindowRgn]
mov dword [ebp - 0xe0], eax
movzx eax, word [ebp - 0x24]
mov ecx, dword [ebp - 0xe0]
sub ecx, eax
mov dword [ebp - 0x9c], ecx
mov edx, dword [ebp - 0x40]
add edx, dword [ebp - 0x6c]
mov dword [ebp - 0x40], edx
mov eax, dword [ebp - 0x120]
add eax, 0x3c
mov dword [ebp - 0x6c], eax
movzx ecx, byte [ebp - 0xfd]
add ecx, 0x31
and ecx, dword [ebp - 0x6c]
and ecx, dword [ebp - 0x140]
mov dword [ebp - 0x140], ecx
movzx edx, byte [ebp - 0x10d]
cmp edx, 0xe
jg 0x401640
mov dword [ebp - 0x40], 0x36
mov eax, dword [ebp - 0x9c]
sub eax, 0x47
sub eax, dword [ebp - 0x120]
mov ecx, dword [ebp - 0x30]
lea edx, [eax + ecx - 0x13]
mov byte [ebp - 0x125], dl
mov ecx, 7
mov esi, str.EV_MMAC_OID_INTEL_RADIO_STATE
lea edi, [ebp - 0x18c]
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
mov eax, dword [ebp - 0x30]
sub eax, 9
and eax, dword [ebp - 0x6c]
mov dword [ebp - 0x6c], eax
mov ecx, 0x5a
sub ecx, dword [ebp - 0xd8]
mov edx, dword [0x423dc8]
add edx, dword [ebp - 0x40]
sub edx, dword [ebp - 0xe0]
or ecx, edx
mov byte [ebp - 0x25], cl
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x144]
sub eax, dword [ebp - 0xe0]
add eax, dword [ebp - 0x144]
mov byte [ebp - 0x119], al
movzx ecx, byte [ebp - 0xf1]
movzx edx, word [ebp - 0x88]
sub ecx, edx
sub ecx, dword [ebp - 0x40]
and ecx, dword [ebp - 0x9c]
or ecx, dword [ebp - 0x30]
mov byte [ebp - 0x8d], cl
movzx eax, word [ebp - 0x15c]
movzx ecx, word [ebp - 0x124]
sub ecx, eax
mov word [ebp - 0x124], cx
movzx edx, word [ebp - 0x1c]
add edx, 0x2a
mov dword [ebp - 0x138], edx
movzx eax, word [ebp - 0x160]
sub eax, 0x25
sub eax, dword [ebp - 0x144]
add eax, dword [0x423dc0]
mov word [ebp - 0xf8], ax
mov ecx, dword [ebp - 0x98]
or ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x6c]
sub edx, dword [ebp - 0x138]
add edx, dword [ebp - 0x30]
sub edx, dword [section..data]
sub edx, 4
mov byte [ebp - 0x125], dl
movzx eax, byte [ebp - 0xa]
mov ecx, dword [ebp - 0x30]
sub ecx, eax
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0x30]
add edx, 0x65
and edx, dword [ebp - 0x144]
mov byte [ebp - 0xa], dl
movzx eax, byte [ebp - 0xfd]
add eax, dword [0x41f00c]
mov dword [0x41f00c], eax
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x120]
sub ecx, 2
mov edx, dword [ebp - 0x144]
sub edx, 0x33
xor ecx, edx
mov byte [ebp - 0x8d], cl
mov eax, 0x25
sub eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x120]
lea ecx, [edx + ecx - 0x44]
or eax, ecx
mov byte [ebp - 0x119], al
movzx edx, word [ebp - 0x154]
mov eax, dword [0x41fdb0]
sub eax, edx
sub eax, 0x1c
xor eax, dword [ebp - 0x6c]
mov byte [ebp - 0x119], al
mov ecx, dword [0x423dc4]
sub ecx, dword [ebp - 0x4c]
sub ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x140], ecx
movzx edx, word [ebp - 0xf8]
sub edx, dword [ebp - 0x16c]
mov dword [ebp - 0x120], edx
movzx eax, word [ebp - 0x58]
mov ecx, dword [ebp - 0xe0]
sub ecx, eax
and ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x2c], ecx
mov edx, dword [ebp - 8]
mov dword [ebp - 4], edx
mov eax, dword [ebp - 0xfc]
add eax, dword [0x41fdb0]
add eax, dword [section..data]
mov dword [ebp - 0x16c], eax
mov ecx, dword [ebp - 0x9c]
sub ecx, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x40]
and edx, 0xb
xor ecx, edx
or ecx, dword [0x423dc4]
mov byte [ebp - 0x10d], cl
mov eax, dword [ebp - 0x144]
mov ecx, dword [ebp - 0xe0]
lea edx, [ecx + eax - 0x5c]
sub edx, dword [ebp - 0x98]
sub edx, dword [ebp - 0x144]
mov byte [ebp - 0x8d], dl
movzx eax, byte [ebp - 0x1d]
sub eax, 0x2a
movzx ecx, byte [ebp - 0x65]
sub eax, ecx
movzx edx, byte [ebp - 0x125]
add eax, edx
mov byte [ebp - 0xd9], al
mov eax, dword [ebp - 0x138]
push eax
call section..text
add esp, 4
mov dword [ebp - 0x120], eax
mov ecx, dword [0x423dc0]
mov edx, dword [ebp - 0xe0]
lea eax, [edx + ecx - 0xd]
xor eax, 0x1e
mov word [ebp - 0xf8], ax
mov ecx, dword [0x41f014]
add ecx, dword [ebp - 0x120]
mov edx, dword [ebp - 0x60]
sub edx, dword [ebp - 0x138]
xor ecx, edx
mov word [ebp - 0x34], cx
mov dword [ebp - 0x48], 0
movzx eax, word [ebp - 0x130]
add eax, dword [ebp - 0x134]
add eax, dword [ebp - 0x134]
mov dword [ebp - 0x134], eax
mov ecx, dword [0x41fdb0]
mov edx, dword [ebp - 0x134]
lea eax, [edx + ecx + 0x3b]
add eax, dword [ebp - 0x120]
xor eax, dword [ebp - 0x40]
mov byte [ebp - 0xfd], al
mov ecx, dword [ebp - 0x9c]
add ecx, dword [ebp - 0x134]
movzx edx, word [ebp - 0x8c]
add ecx, edx
sub ecx, dword [ebp - 0xe0]
sub ecx, dword [ebp - 0x9c]
mov byte [ebp - 0x139], cl
mov eax, dword [ebp - 0x6c]
add eax, 0x29
mov dword [ebp - 0x30], eax
mov ecx, 0x4d
sub ecx, dword [0x41f010]
sub ecx, dword [ebp - 0x30]
mov word [ebp - 0xf0], cx
mov edx, 0x13
sub edx, dword [ebp - 0x6c]
mov eax, dword [ebp - 0x138]
sub eax, dword [ebp - 0x6c]
xor edx, eax
movzx ecx, byte [ebp - 0xfd]
sub ecx, edx
mov byte [ebp - 0xfd], cl
movzx edx, word [ebp - 0x64]
sub edx, 0x34
mov eax, dword [0x41f018]
sub eax, edx
mov dword [0x41f018], eax
mov ecx, 0x43
sub ecx, dword [ebp - 0xe0]
or ecx, dword [ebp - 0x120]
mov dword [ebp - 0x158], ecx
mov edx, dword [str.CPs_flag__d]
mov dword [ebp - 0x80], edx
mov eax, dword [0x41c810]
mov dword [ebp - 0x7c], eax
mov ecx, dword [0x41c814]
mov dword [ebp - 0x78], ecx
mov dl, byte [0x41c818]
mov byte [ebp - 0x74], dl
mov eax, dword [ebp - 0x6c]
add eax, dword [ebp - 0x144]
add eax, dword [0x423dc4]
mov dword [ebp - 0x5c], eax
mov ecx, 0x21
sub ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x134], ecx
mov edx, dword [ebp - 0x134]
add edx, 0x55
mov dword [ebp - 0x9c], edx
mov eax, dword [0x41fda8]
mov dword [ebp - 0xe4], eax
mov ecx, dword [ebp - 0x120]
sub ecx, dword [ebp - 0x138]
add ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x98]
add edx, 0x2f
mov eax, dword [0x41fdac]
sub eax, dword [ebp - 0x12c]
xor edx, eax
mov word [ebp - 0x130], dx
movzx ecx, byte [ebp - 0x119]
mov edx, dword [ebp - 0x134]
lea eax, [edx + ecx + 0x5a]
sub eax, dword [ebp - 0x144]
mov word [ebp - 0x34], ax
movzx ecx, byte [ebp - 0x35]
add ecx, dword [ebp - 0x40]
mov dword [ebp - 0x30], ecx
mov edx, 0x44
sub edx, dword [ebp - 0x134]
mov dword [ebp - 0x40], edx
movzx eax, byte [ebp - 0x8d]
sub eax, dword [ebp - 0x9c]
movzx ecx, word [ebp - 0xf0]
add ecx, 0x3e
and eax, ecx
mov byte [ebp - 0x8d], al
movzx edx, byte [ebp - 0x1d]
mov eax, dword [ebp - 0x144]
add eax, dword [ebp - 0x138]
sub eax, dword [ebp - 0x9c]
xor edx, eax
mov word [ebp - 0x94], dx
mov ecx, dword [ebp - 0x30]
sub ecx, dword [ebp - 0x40]
sub ecx, 0x57
or ecx, 0x18
mov word [ebp - 0x94], cx
movzx edx, byte [ebp - 0x65]
add edx, 0x43
movzx eax, byte [ebp - 0x11]
movzx ecx, word [ebp - 0x130]
add eax, ecx
xor edx, eax
mov byte [ebp - 0x8d], dl
movzx edx, byte [ebp - 0xfd]
mov eax, dword [ebp - 0x144]
sub eax, edx
sub eax, dword [ebp - 0x144]
sub eax, 0x1d
mov word [ebp - 0xf0], ax
mov ecx, dword [0x41fdac]
add ecx, dword [ebp - 0x138]
add ecx, dword [ebp - 0xe0]
sub ecx, dword [0x41f018]
or ecx, dword [ebp - 0x120]
mov byte [ebp - 0xf1], cl
movzx edx, byte [ebp - 0x35]
add edx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0x144]
lea ecx, [eax + edx - 0x68]
mov byte [ebp - 0x165], cl
movzx edx, word [ebp - 0x1c]
mov eax, dword [ebp - 0x134]
sub eax, edx
mov dword [ebp - 0x9c], eax
mov ecx, dword [ebp - 0x10]
sub ecx, 0x4a
movzx edx, byte [ebp - 0xf1]
sub ecx, edx
mov eax, dword [ebp - 0x144]
sub eax, 0x43
or ecx, eax
mov byte [ebp - 0x1d], cl
mov ecx, dword [ebp - 0x120]
sub ecx, dword [ebp - 0x134]
mov edx, dword [ebp - 0x6c]
lea eax, [ecx + edx - 0x4d]
mov byte [ebp - 9], al
mov dword [ebp - 0x19c], 0
mov ecx, dword [ebp - 0x138]
add ecx, 0x48
sub ecx, dword [ebp - 0x134]
mov dword [ebp - 0x118], ecx
movzx edx, byte [ebp - 0x11]
add edx, dword [ebp - 0xe0]
sub edx, dword [ebp - 0x134]
add edx, dword [ebp - 0x98]
xor edx, 0x24
mov byte [ebp - 0x139], dl
mov eax, dword [ebp - 0xfc]
add eax, dword [ebp - 0x5c]
sub eax, dword [ebp - 0xe0]
mov dword [ebp - 0xfc], eax
movzx ecx, byte [ebp - 0x1d]
add ecx, 0x19
movzx edx, byte [ebp - 0xd9]
sub edx, ecx
mov byte [ebp - 0xd9], dl
movzx eax, byte [ebp - 0xa]
sub eax, dword [ebp - 0x144]
add eax, dword [ebp - 0x40]
add eax, dword [ebp - 0x144]
movzx ecx, byte [ebp - 0x11]
sub eax, ecx
mov byte [ebp - 0xa], al
mov dword [ebp - 0x190], 0
mov edx, dword [ebp - 0x134]
sub edx, 0xc
xor edx, 0x20
mov byte [ebp - 0x11], dl
mov eax, 0x4c
sub eax, dword [ebp - 0x144]
mov ecx, 0x50
sub ecx, dword [ebp - 0x9c]
add ecx, dword [0x423dc4]
and eax, ecx
mov byte [ebp - 0x119], al
movzx edx, word [ebp - 0x34]
add edx, 0x45
movzx eax, word [ebp - 0x94]
and edx, eax
mov dword [ebp - 0x118], edx
movzx ecx, byte [ebp - 0x125]
mov edx, dword [ebp - 0x120]
add edx, dword [ebp - 0x134]
xor ecx, edx
mov dword [ebp - 0xfc], ecx
mov eax, dword [ebp - 0x30]
add eax, 0x82
sub eax, dword [ebp - 0x120]
or eax, 0x49
mov byte [ebp - 9], al
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x1a0], ecx
movzx edx, word [ebp - 0x34]
mov eax, dword [ebp - 0x134]
lea ecx, [eax + edx + 0x42]
mov dword [ebp - 0x118], ecx
mov edx, dword [ebp - 0x1a0]
mov eax, dword [ebp - 0x120]
mov dword [edx], eax
mov ecx, 0xf
sub ecx, dword [ebp - 0x138]
movzx edx, byte [ebp - 0xf1]
add ecx, edx
movzx eax, byte [ebp - 0x10d]
add ecx, eax
mov word [ebp - 0x24], cx
mov dword [ebp - 0x1ac], 0
jmp 0x401c97
mov ecx, dword [ebp - 0x1ac]
add ecx, 1
mov dword [ebp - 0x1ac], ecx
cmp dword [ebp - 0x1ac], 0xd4
jge 0x401d5c
mov edx, 0xf
sub edx, dword [ebp - 0x9c]
add edx, 0x27
sub edx, dword [ebp - 0x6c]
add edx, 0x46
mov byte [ebp - 0x8d], dl
movzx eax, word [ebp - 0x88]
movzx ecx, byte [ebp - 0xf1]
sub eax, ecx
xor eax, 0x61
mov word [ebp - 0x88], ax
movzx edx, word [ebp - 0x58]
add edx, dword [ebp - 0x6c]
sub edx, dword [ebp - 0x134]
add edx, dword [ebp - 0x30]
mov word [ebp - 0x114], dx
mov eax, dword [ebp - 0xe0]
add eax, 0x6a
sub eax, dword [ebp - 0x120]
movzx ecx, byte [ebp - 0x35]
sub eax, ecx
mov byte [ebp - 0x25], al
mov edx, 0x4b
sub edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x134]
lea ecx, [edx + eax + 0x2b]
and ecx, 0x1e
mov byte [ebp - 0x65], cl
mov edx, dword [ebp - 0x40]
push edx
mov eax, dword [ebp - 0x6c]
push eax
mov ecx, dword [ebp - 0xe0]
push ecx
call fcn.00402e60
add esp, 0xc
mov dword [ebp - 0x40], eax
movzx edx, byte [ebp - 0x165]
mov eax, dword [ebp - 0x134]
lea ecx, [eax + edx + 0x41]
or ecx, 0x31
mov word [ebp - 0x64], cx
jmp 0x401c88
mov edx, dword [ebp - 0x140]
sub edx, 0x29
mov byte [ebp - 9], dl
movzx eax, word [ebp - 0x94]
add eax, dword [0x423dc8]
mov dword [ebp - 0x6c], eax
movzx ecx, word [ebp - 0x130]
mov edx, 0x60
sub edx, ecx
sub edx, dword [ebp - 0x12c]
sub edx, 0x54
mov word [ebp - 0x64], dx
movzx eax, byte [ebp - 0x125]
add eax, 0xd
sub eax, dword [ebp - 0x9c]
add eax, dword [0x41f00c]
and eax, dword [ebp - 0x158]
mov byte [ebp - 0x35], al
movzx ecx, byte [ebp - 0x11]
mov edx, dword [ebp - 0x6c]
sub edx, ecx
movzx eax, word [ebp - 0x114]
add eax, edx
mov word [ebp - 0x114], ax
movzx ecx, word [ebp - 0x160]
sub ecx, dword [ebp - 0x120]
sub ecx, 0x49
sub ecx, dword [ebp - 0x30]
mov word [ebp - 0x64], cx
mov dword [ebp - 0x1b0], 0
jmp 0x401dfd
mov edx, dword [ebp - 0x1b0]
add edx, 1
mov dword [ebp - 0x1b0], edx
cmp dword [ebp - 0x1b0], 0x5c
jge 0x40207c
movzx eax, word [ebp - 0x130]
add eax, 0x59
mov dword [ebp - 0xe0], eax
movzx ecx, byte [ebp - 0x35]
add ecx, dword [ebp - 0x9c]
movzx edx, word [ebp - 0x130]
add ecx, edx
sub ecx, dword [ebp - 0x144]
movzx eax, word [ebp - 0x34]
add eax, ecx
mov word [ebp - 0x34], ax
mov ecx, dword [ebp - 0x1b0]
add ecx, 0x5d
sub ecx, dword [ebp - 0x120]
mov edx, dword [ebp - 0x54]
sub edx, ecx
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x1b4], 0
jmp 0x401e6f
mov eax, dword [ebp - 0x1b4]
add eax, 1
mov dword [ebp - 0x1b4], eax
cmp dword [ebp - 0x1b4], 0xd4
jge 0x401f22
mov ecx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x134]
sub ecx, dword [ebp - 0x118]
add ecx, dword [ebp - 0x40]
mov word [ebp - 0x160], cx
mov edx, dword [ebp - 0x1b4]
add edx, dword [ebp - 0x138]
sub edx, dword [ebp - 0x9c]
mov eax, dword [ebp - 0x134]
sub eax, 0xb
xor edx, eax
movzx ecx, byte [ebp - 0x35]
add ecx, edx
mov byte [ebp - 0x35], cl
movzx edx, word [ebp - 0x124]
mov eax, dword [ebp - 0x134]
sub eax, edx
and eax, dword [ebp - 0xe0]
xor eax, dword [ebp - 0x6c]
mov word [ebp - 0x24], ax
movzx ecx, word [ebp - 0x130]
add ecx, dword [ebp - 0x1b4]
or ecx, dword [ebp - 0x6c]
or ecx, dword [ebp - 0xe0]
movzx edx, word [ebp - 0xf8]
imul edx, ecx
mov word [ebp - 0xf8], dx
mov eax, 0xa
sub eax, dword [ebp - 0x40]
mov ecx, dword [ebp - 0x1b4]
lea edx, [eax + ecx - 0xb]
movzx eax, word [ebp - 0x1c]
sub eax, edx
mov word [ebp - 0x1c], ax
jmp 0x401e60
mov ecx, dword [ebp - 0xe0]
add ecx, 0xf
sub ecx, dword [ebp - 0x144]
mov edx, dword [ebp - 0x138]
lea eax, [ecx + edx - 0x1e]
imul eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x6c]
push ecx
mov edx, dword [ebp - 0x6c]
push edx
call fcn.00402410
add esp, 8
add eax, dword [ebp - 0xe0]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0x1b0]
cmp eax, dword [ebp - 0xe0]
jle 0x401fe5
movzx ecx, word [ebp - 0x124]
add ecx, dword [ebp - 0x6c]
sub ecx, dword [ebp - 0xe0]
add ecx, dword [ebp - 0x138]
movzx edx, byte [ebp - 0xfd]
sub ecx, edx
mov byte [ebp - 0x1d], cl
movzx eax, byte [ebp - 0x119]
movzx ecx, byte [ebp - 0x35]
sub eax, ecx
movzx edx, byte [ebp - 0x8d]
sub eax, edx
movzx ecx, word [ebp - 0x88]
add ecx, eax
mov word [ebp - 0x88], cx
mov edx, dword [ebp - 0xe0]
add edx, dword [ebp - 0x138]
sub edx, dword [ebp - 0x40]
mov dword [ebp - 0x4c], edx
movzx eax, word [ebp - 0x130]
add eax, dword [ebp - 0x138]
mov ecx, dword [ebp - 0x144]
lea edx, [eax + ecx - 0x11]
mov byte [ebp - 0x119], dl
jmp 0x402020
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x9c]
lea edx, [ecx + eax - 0x4c]
add edx, dword [ebp - 0xe0]
sub edx, dword [ebp - 0x138]
mov byte [ebp - 9], dl
mov eax, 0x40
sub eax, dword [ebp - 0x144]
or eax, dword [0x41fdb8]
mov ecx, dword [ebp - 0x120]
add ecx, 0x54
or eax, ecx
mov byte [ebp - 0x25], al
movzx edx, byte [ebp - 0x165]
mov eax, dword [ebp - 0x138]
sub eax, edx
sub eax, dword [ebp - 0x1b0]
movzx ecx, word [ebp - 0x8c]
sub eax, ecx
xor eax, dword [ebp - 0x144]
movzx edx, byte [ebp - 0x25]
add edx, eax
mov byte [ebp - 0x25], dl
mov eax, dword [ebp - 0x120]
sub eax, dword [ebp - 0x1b0]
sub eax, 0x36
movzx ecx, word [ebp - 0x24]
movzx edx, byte [ebp - 0x1d]
sub ecx, edx
xor eax, ecx
movzx ecx, byte [ebp - 0xfd]
add ecx, eax
mov byte [ebp - 0xfd], cl
jmp 0x401dee
movzx edx, byte [ebp - 0xa]
mov eax, dword [ebp - 0x134]
lea ecx, [eax + edx + 0x67]
sub ecx, dword [ebp - 0x40]
mov byte [ebp - 0x125], cl
movzx edx, word [ebp - 0x1c]
add edx, dword [ebp - 0xe0]
movzx eax, word [ebp - 0x15c]
add edx, eax
and edx, 0x25
mov word [ebp - 0x24], dx
mov ecx, dword [0x41f008]
and ecx, 0x41
mov dword [ebp - 0x120], ecx
mov edx, dword [ebp - 0x48]
add edx, 1
imul edx, dword [0x41f040]
mov eax, dword [ebp - 0x48]
add eax, 1
sub eax, dword [0x41f040]
xor edx, eax
mov ecx, dword [ebp - 0x48]
mov eax, dword [ebp - 8]
movzx ecx, word [eax + ecx*2]
add edx, ecx
mov eax, dword [ebp - 0xe4]
add eax, dword [ebp - 0x48]
mov byte [eax], dl
movzx ecx, word [ebp - 0x34]
add ecx, dword [ebp - 0x6c]
movzx edx, byte [ebp - 0x25]
or ecx, edx
movzx eax, word [ebp - 0x94]
add eax, ecx
mov word [ebp - 0x94], ax
mov ecx, dword [ebp - 0x6c]
add ecx, dword [ebp - 0x144]
movzx edx, word [ebp - 0x88]
lea eax, [ecx + edx + 0x44]
or eax, 0x37
mov byte [ebp - 0x11], al
mov ecx, dword [ebp - 0x144]
sub ecx, dword [ebp - 0x30]
add ecx, dword [ebp - 0x98]
mov edx, dword [ebp - 0x134]
lea eax, [ecx + edx - 0x3d]
mov byte [ebp - 0xfd], al
movzx ecx, byte [ebp - 0x35]
movzx edx, byte [ebp - 0x10d]
sub ecx, edx
mov eax, dword [ebp - 0x30]
lea ecx, [ecx + eax + 0x5a]
add ecx, dword [ebp - 0x138]
mov byte [ebp - 0xf1], cl
mov dword [ebp - 0x1a8], 0
mov edx, dword [ebp - 0x9c]
push edx
mov eax, dword [ebp - 0x9c]
push eax
mov ecx, dword [ebp - 0xe0]
push ecx
call fcn.00401170
add esp, 0xc
mov dword [ebp - 0x120], eax
movzx edx, byte [ebp - 9]
movzx eax, word [ebp - 0x94]
xor edx, eax
mov dword [ebp - 0x40], edx
movzx ecx, byte [ebp - 9]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0x120]
lea edx, [eax + edx + 0xa]
or ecx, edx
movzx eax, byte [ebp - 0x25]
sub eax, ecx
mov byte [ebp - 0x25], al
mov ecx, dword [ebp - 0x40]
add ecx, dword [ebp - 0x9c]
add ecx, dword [ebp - 0x30]
add ecx, dword [0x423dc4]
add ecx, dword [ebp - 0x9c]
mov byte [ebp - 0x35], cl
movzx edx, byte [ebp - 0x35]
mov eax, dword [ebp - 0xfc]
add eax, 0x32
sub eax, dword [0x41fdb8]
xor edx, eax
mov word [ebp - 0x114], dx
mov ecx, 0x38
sub ecx, dword [ebp - 0x138]
mov edx, dword [section..data]
lea eax, [ecx + edx - 0x1e]
and eax, 0x46
mov byte [ebp - 0x11], al
mov dword [ebp - 0x1a4], 0
mov ecx, dword [ebp - 0x120]
or ecx, dword [0x41f00c]
mov dword [ebp - 0x40], ecx
mov edx, dword [ebp - 0x48]
add edx, 1
mov dword [ebp - 0x48], edx
cmp dword [ebp - 0x48], 0x1234
jne 0x401a1a
movzx eax, byte [ebp - 0x65]
movzx ecx, byte [ebp - 0x8d]
add eax, ecx
or eax, dword [0x41f014]
mov dword [0x41f014], eax
mov edx, dword [ebp - 0x144]
or edx, 0x52
mov dword [ebp - 0x30], edx
mov eax, dword [ebp - 0x120]
add eax, dword [ebp - 0x144]
sub eax, dword [str.__8D__n_3]
add eax, dword [ebp - 0x30]
sub eax, dword [ebp - 0x144]
mov byte [ebp - 0xa], al
mov ecx, dword [0x41c81c]
mov dword [ebp - 0x150], ecx
mov edx, dword [0x41c820]
mov dword [ebp - 0x14c], edx
mov eax, dword [0x41c824]
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x144], 0xffffffef
mov ecx, dword [ebp - 0x134]
mov edx, dword [0x41fdb0]
lea eax, [edx + ecx + 4]
mov dword [ebp - 0x5c], eax
mov byte [ebp - 0x41], 0x1c
movzx ecx, word [ebp - 0x154]
mov edx, dword [ebp - 0x134]
lea eax, [ecx + edx + 0x39]
sub eax, dword [ebp - 0x30]
xor eax, dword [ebp - 0x144]
mov byte [ebp - 0x35], al
mov ecx, dword [ebp - 0x9c]
add ecx, dword [ebp - 0x138]
sub ecx, dword [0x41fdb0]
sub ecx, dword [ebp - 0x30]
sub ecx, 0x42
mov byte [ebp - 0xd9], cl
movzx edx, byte [ebp - 0x1d]
sub edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x6c]
mov dword [ebp - 0xfc], edx
mov eax, dword [ebp - 0x138]
sub eax, dword [ebp - 0x120]
movzx ecx, byte [ebp - 0xfd]
mov edx, 0x4d
sub edx, ecx
xor eax, edx
mov word [ebp - 0x130], ax
mov eax, dword [ebp - 0xe4]
mov dword [0x41fda8], eax
mov ecx, dword [ebp - 0x120]
add ecx, dword [ebp - 0x134]
or ecx, 0x1b
mov edx, dword [ebp - 0x30]
sub edx, dword [ebp - 0x9c]
or ecx, edx
mov byte [ebp - 0x10d], cl
mov eax, dword [0x41f010]
mov ecx, dword [ebp - 0x134]
lea edx, [ecx + eax + 6]
or edx, 0xd
mov word [ebp - 0x8c], dx
mov eax, dword [str.__8D__n_3]
add eax, dword [ebp - 0xe0]
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x9c]
lea eax, [edx + ecx - 0x28]
mov word [ebp - 0xf0], ax
mov ecx, 0x4a
sub ecx, dword [ebp - 0x138]
movzx edx, word [ebp - 0x58]
movzx eax, word [ebp - 0x114]
sub edx, eax
and ecx, edx
xor ecx, 0x3b
mov byte [ebp - 0x11], cl
movzx ecx, word [ebp - 0xf8]
mov edx, dword [0x41fdb0]
add edx, dword [ebp - 0x40]
add edx, dword [ebp - 0x30]
add edx, dword [ebp - 0x40]
and ecx, edx
mov byte [ebp - 0xd9], cl
mov eax, dword [ebp - 0x120]
add eax, 0x54
mov dword [ebp - 0x30], eax
mov ecx, 0x2a
sub ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x134], ecx
movzx eax, byte [ebp - 0xf1]
pop edi
pop esi
mov ecx, dword [ebp - 0x70]
xor ecx, ebp
call fcn.00403b54
mov esp, ebp
pop ebp
ret